Releases
v2.5.0
Compare
Sorry, something went wrong.
No results found
mpusz
released this
24 Dec 14:54
(!) feat: representation concepts improved
(!) feat: representation_of concept now also accepts a quantity_spec and accepts any representation character for quantity kinds
(!) feat: quantity::one() removed
(!) feat: Representation concept removed
feat: SymbolicArg applied to expression templates
feat: per and power made final
feat: derived_XXX are now constrained with SymbolicConstant
feat: prime factorization extended to any magnitude (thanks @chiphogg )
feat: cartesian_vector added
feat: equivalent now accept any units (even non-convertible)
feat: text output should fallback to the portable mode when UTF-8 is not used for text_encoding
feat: precondition added to to_u8string
feat: text output of scaled units is now enclosed in parenthesis (...) instead of brackets [...]
feat: abs(quantity) exposed for conforming freestanding implementations
feat: proper constraints for kind_of
feat: missing precondition added for quantity::op/
feat: quantity_spec conversions improved
feat: rankine unit added
feat: std::numeric_limits support added
feat: scaling_overflows_non_zero_values added to detect conversions overflowing rep
feat: deprecation messages now provide the release version where the deprecation happened
feat: electromagnetism.h updated to IEC80000-6-2022 with raw numbers
feat: lerp and midpoint for points added
feat: is_value_preserving customization point added
feat: EQUIV{...} replaced with [...] in the text output of common units
feat: constexpr_format added
feat: unsatisfied added and enabled throwing constraints
feat: some constraints refactored to throw exceptions with nice error messages
feat: explicit constructor now can perform an explicit quantity_spec conversion
feat: natural units support is now opt-in
feat: value_type_t is now recursive
feat: support for root of negative numbers removed
feat: old MSVC workarounds disabled for the latest version
feat: invoke_with_prefixed added to SI
feat: QuantityLike should not satisfy the Representation concept
feat(example): is_vector specialization no longer needed for si_constants
feat(example): measurement.h extracted for easier reuse
feat(example): clcpp_response and conversion_factor examples removed
(!) refactor: type_list moved to implementation details
(!) refactor: from now unit_symbol and dimension_symbol always returns std::string_view
(!) refactor: text_encoding renamed to character_set
(!) refactor: Magnitude renamed to UnitMagnitude and magnitude to unit_magnitude
(!) refactor: unit_magnitude moved to detail namespace
(!) refactor: absolute renamed to point
(!) refactor: power members refactored to be explicitly exposition only
(!) refactor: is_XXX customization points for representation types removed
(!) refactor: quantity_values renamed to representation values
(!) refactor: scalar and complex characters renamed to real_scalar and complex_scalar respectively + concepts refactoring
(!) refactor: MagConstant concept renamed to detail::is_mag_constant variable trait
(!) refactor: format.h header file made deprecated
(!) refactor: ostream.h header file made deprecated
(!) refactor: rename default_denominator to default_solidus in unit_symbol_solidus enum
refactor: mp_units.core defined in terms of core.h
refactor: MP_UNITS_NONCONST_TYPE introduced to benefit from the C++23 feature
refactor: SymbolicConstant concept refactored
refactor: explicit type of op/ for quantity and reference replaced with constrained placeholder
refactor: private unit_magnitude interface renamed to not use leading _
refactor: one_of concept removed and replaced with QSProperty in quantity_spec
refactor: std::is_trivial will be deprecated in C++26
refactor: SameQuantitySpec concept removed and replaced with direct comparison
refactor: unused SameReference concept removed
refactor: type_name_less introduced and used as a default predicate for expression templates
refactor: "expression templates" renamed to "symbolic expressions"
refactor: all_are_kinds removed and get_associated_quantity simplified
refactor: reference now returns explicit types for inverse, pow, sqrt, and cbrt
refactor: repeated concept checks removed from get_common_reference
refactor: std::assignable_from used in ValuePreservingTo concept
refactor: quantity constructor refactored to use another constructor with the result of sudo_cast
refactor: preconditions for quantity operations now use is_neq_zero
refactor: implicit expression variations used in quantity and quantity_point constraints
refactor: inverse() constraints improved
refactor: make_quantity_point introduced
refactor: point_origin_interface::op+ return type unified with the rest of the interfaces
refactor: std::convertible_to replaced with std::same_as in basic_fixed_string
refactor: less, ceil, and round refactored and improved + more unit tests for round
refactor: math_concepts.h removed and concepts replaced with explicit expression in constraints
refactor: visit_format_arg is deprecated in C++26
refactor: deprecated literal operators
refactor: constraints refactoring
refactor: compund assignment and pre-/post-increment operators are now lvalue-qualified member functions
refactor: ValuePreservingScaling concepts renamed
refactor: common_type specializations refactored
refactor: NumberLike renamed to DimensionlessOne
refactor: branching on a deprecated C++ feature improved
refactor: all CTADs made implicit
refactor: MP_UNITS_REMOVE_CONST gcc workaround added to RepresentationOf
refactor: ReferenceOf concept simplified
refactor: explicitly defaulted special member functions removed
refactor(example): slight refactoring of examples while working on their documentation
refactor(example): kalman filter examples refactored to better match their
refactor(example): is_hae function refactored to HAEAltitude concept
(!) fix: electric_current_phasor, voltage_phasor, apparent_power switched to complex character
(!) fix: position_vector and displacement moved to a different place in a tree
(!) fix: velocity is now defined in terms of displacement instead of position_vector
fix: missing core.h added to CMake
fix: const was leaking to some SymbolicConstants
fix: make_reference should skip only the exact kinds deduced from a unit
fix: inconsistencies in get_common_quantity_spec() fixed
fix: unused convertible_kinds() argument removed
fix: compile-time branch condition fixed in quantity_point::point_for
fix: inverse(Quantity) fixed for subkinds of dimensionless
fix: point_origin_interface::op+ constraints fixed
fix: missing get_common_unit() overload added
fix: floor and ceil constraints fixed
fix: quantity characters fixed in electromagnetism quantities
fix: arg.visit support fixed
fix: expr_less now also sorts powers
fix: mag_constant workarounds branches for clang fixed
fix: checking for clang versions fixed in CMake scripts
fix: text stripping in type_name fixed
fix: make quantity conversion to Rep constexpr (thanks @KangarooKoala )
fix: MSVC compilation fixed
fix: abs interface and implementation improved
fix: unused parameters removed from scaling_overflows_non_zero_values
fix: invalid precondition check in root removed
fix: workaround for fmt
fix: CTAD issue workaround for MSVC
fix: dynamic_spec_id_handler fixed for gcc-15
fix: MSVC workarounds for consteval functions
fix: resolve CMake compiler test failure in freestanding CI builds (thanks @rothmichaels )
fix: msvc empty bases workaround (thanks @Radnyx )
fix: seconds literal has unspecified type and depends on implementation (thanks @Radnyx )
fix: named_unit can now be created for kind_of<dimensionless>
fix: enable runtime usage of inverse function by using compile-time unit extraction (thanks @rothmichaels )
fix: CTAD for dimensionless quantities fixed
fix: concepts tests compilation fixed for MP_UNITS_API_NATURAL_UNITS OFF
fix: missing natural units support added to package_info()
fix: freestanding build error in Conan package_info() (thanks @kammce )
fix: replace wstring_view with basic_string_view<wchar_t> (thanks @kammce )
Fix destination unit creation in inverse
fix(docs): typo in a file name fixed
fix(example): text formatting fixed for glide_computer documentation
test: lots of tests for complex quantities
test: runtime unit tests refactored to have a bigger granularity (less top level tests)
test: surface tension replaced with entropy in an fmt test
test: test_package now is tested also with C++20 modules
test: tests for dimensionless quantities static data members
test: a few more natural units tests added
test: tests to check if quantity satisfies Scalar
test: add static tests for concept DimensionOf (thanks @jvocht )
test: quantity character concepts tests for quantities added
test: duplicated dimensionless tests removed
test: additional concepts tests for quantity spec added
docs: ISQ part 6 released
docs: new chapter about our documentation added to the contributing guide
docs: directory name updated in the contributing guide
docs: mp-units Conan options added to conanfile.txt examples
docs: contracts Conan option default value description improved
docs: outdated note removed from the "Text Output" chapter
docs: a paragraph about additional formatting options removed (applicable only to quantity symbols which we do not support)
docs: Wrocław 2024 meeting report
docs: explicit unit conversion example added to the "Symbols of common units" chapter
docs: "Bringing Quantity-Safety To The Next Level" blog post added
docs: quantity-safety mentioned in the docs
docs: complex character added to the "Quantity character" chapter
docs: intro to "Value Conversions" chapter added
docs: "Scaling overflow prevention" chapter added
docs: "Concepts" chapter updated
docs: old customization points removed from the "Character of a Quantity" chapter
docs: clang-19 issues mentioned in a compiler support table
docs: "Introducing absolute quantities" blog post added
docs: relative path removed from the contributing guide
docs: examples updated and deprecated tags generation replaced with modern usage
docs: compiler explorer links replaced with buttons
docs: "Installation and Usage" cleanup
docs: "Introduction" chapter improved
docs: "Quick Start" Improved
docs: "Interface Introduction" improved
docs: "Systems of Quantities" chapter improved
docs: "Concepts" chapter improved
docs: README updated
docs: "Install as a Dependency" added to README
docs: tutorials section added
docs: info about kind_of<dimensionless> units added
docs: adjust formatting in temperature printing function for better alignment
docs: README visually improved
docs: 2 new chapters added to README
docs: link to mp-units in ConanCenter added to README
docs: "Support the Project" added to README
docs: enhance testimonials section for clarity and inclusivity
docs: clarify flowchart labels for quantity addition and differences
docs: CONTRIBUTORS.md added
docs: examples reworked
docs: "Cheat Sheet" added
docs: "Auto-scaling of a quantity" chapter added
docs(ref): document most of mp_units.core (thanks @JohelEGP )
build: CheckCacheVarValues CMake module file added
build: MP_UNITS_DEV_TIME_TRACE CMake option added
build: MP_UNITS_API_NO_CRTP removed from test_package CMake
build: require at least CMake 3.31 with Conan
build: clang-20 enabled in CI
build: clang-19 support removed from conanfile.py
build: clang-20.1 workaround added to package_info
build: update dependencies to gsl-lite/1.0.1, ms-gsl/4.2.0, fmt/12.1.0, catch2/3.11.0, cmake/4.2.1
build: suppress warnings for gcc-12 in conanfile
build: switch freestanding CI to clang-20
build: gcc installation step is now mandatory for all gcc versions
build: import_std set to False by default
build: wg21-linear_algebra dependency removed
build: check_libcxx_in_use improved
build: Gitpod support removed
build: CodeSpaces support added
build: CMake switched to a new gsl-lite target
build: clang-21 added to check_all.sh
build: gcc-15 enabled in check_all.sh
build: explicit_this enabled for AppleClang 17 and MSVC 19.32 (thanks @alex-tee )
build: add build: add INSTALL option to cmake option to cmake (thanks @alex-tee )
build: projectPrefix CMake variable removed
build: MP_UNITS_BUILD_AS_SYSTEM_HEADERS removed
build: warnings.cmake refactored to use CMAKE_COMPILE_WARNING_AS_ERROR
build: CMAKE_COMPILE_WARNING_AS_ERROR set in conanfile
build: PROJECT_IS_TOP_LEVEL used in ensure_entry_point
build: Various cleanup (thanks @HazardyKnusperkeks )
build: CMake config file variables handling fixed
build: dereferencing CMake variables in if() conditions is not needed
build: improved setting of MP_UNITS_BUILD_CXX_MODULES for test_package
build: MP_UNITS_BUILD_CXX_MODULES will now be always provided by Conan
build: CMake CI should run the cmake executable provided by Conan
build: C++23 enabled for test_package when import std is ON
build: all target_compile_definitions aggregated in one place
ci: CI matrix generation added (thanks @burnpanck )
ci: import_std now checks if at least C++23 is being used
ci: GitHub actions improved
ci: dependency review GitHub action added
ci: clang-21 support added
ci: update dependency review configuration
ci: housekeeping after release step fixed in ci-conan
ci: the macOS-13 based runner images are retired in GitHub
ci: old 'VISUAL' decendant of Conan 1.x removed from CMake CI
perf: caching of the results of heavy consteval functions execution added
perf: expr_projectable concept removed to improve compilation performance
style: pre-commit tools updated
style: markdownlint rules updated
style: MD036 added to .markdownlint.json
chore: add issue templates for bug reports, documentation issues, and feature requests
chore: add usage experience issue template and a chapter in README
chore: PR template added
chore: FUNDING.yml file added
You can’t perform that action at this time.