Skip to content

2.2.0

Compare
Choose a tag to compare
@mpusz mpusz released this 14 Jun 13:54
· 241 commits to master since this release
  • (!) feat: C++ modules support added by @JohelEGP
  • (!) feat: New formatting specification implemented
  • (!) feat: has_unit_symbol support removed
  • (!) feat: ABI concerns resolved with introduction of u8 strings for symbols
  • (!) feat: API-related Conan, CMake, and preprocessor options redesigned
  • (!) feat: core.h removed
  • (!) feat: from now on units, dimensions, quantity specifications, and point origins have to be marked as final
  • feat: implicit point origins support added
  • feat: unit default point origin support added
  • feat: fma, isfinite, isinf, and isnan math function added by @NAThompson
  • feat: fma for quantity points added
  • feat: quantity_point support added for quantity_cast and value_cast
  • feat: value_cast<Unit, Representation> added
  • feat: value_cast<Quantity>(q), value_cast<Quantity>(qp) and value_cast<QuantityPoint>(qp) added by @burnpanck
  • feat: interconvertible(QuantitySpec, QuantitySpec) added
  • feat: qp.quantity_from_zero() added
  • feat: value_type type trait added
  • feat: do not print space between a number and percent or per_mille
  • feat: ppm parts per million added by @nebkat
  • feat: atan2 2-argument arctangent added by @nebkat
  • feat: fmod floating-point division remainder added by @nebkat
  • feat: remainder IEEE division remainder added by @nebkat
  • feat: std::format support added
  • feat: unit text output support added
  • feat: formatting error messages improved
  • feat: improve types readability by eliminating extraneous () in references, prefixes, and kind_of
  • feat: dimension and unit text output added
  • feat: some light and radiation ISQ quantities added
  • feat: allow configuring GSL library use
  • feat: freestanding support added
  • (!) refactor: zero_Fahrenheit renamed to zeroth_degree_Fahrenheit
  • (!) refactor: SI-related trigonometric functions moved to the si subnamespace
  • (!) refactor: math.h header file broke up to smaller pieces
  • (!) refactor: fixed_string interface refactored
  • (!) refactor: ReferenceOf does not take a dimension anymore
  • (!) refactor: 'o' replaced with '1' as a modifier for unit_symbol_solidus::one_denominator
  • (!) refactor: get_kind() now returns kind_of
  • (!) refactor: FMT macros moved to compat_macros.h
  • (!) refactor: fixed_string refactored to reflect the latest changes to P3094R2
  • (!) refactor: basic_symbol_text renamed to symbol_text
  • (!) refactor: ratio hidden as an implementation detail behind mag_ratio
  • (!) refactor: framework.h introduced
  • (!) refactor: type list tools made an implementation detail of the library
  • (!) refactor: header files with the entire system definitions moved up in the directory tree
  • (!) refactor: absolute_point_origin does not use CRTP anymore
  • refactor: system's units do not inherit from one another anymore
  • refactor: all units made final
  • refactor: math functions constraints refactored
  • refactor: si_quantities.h added to improve compile-times
  • refactor: validate_ascii_string refactored to is_basic_literal_character_set
  • refactor: underlying_type split to wrapped_type and value_type and used in code
  • refactor: code refactored to comply with clang-tidy
  • refactor: remove dependency on <ranges> header and switch to use an iterator-based copy algorithm
  • refactor: terminate replaced with abort and a header file added
  • refactor: most std::remove_const_t removed and some replaced with the GCC-specific workaround
  • refactor: not needed remove_reference_t and remove_cvref_t removed
  • fix: QuantityLike conversions required Q::rep instead of using one provided by quantity_like_traits
  • fix: QuantitySpec[Unit] replaced with make_reference in value_cast
  • fix: ice_point is now defined with the integral offset from absolute_zero
  • fix: performance regression in sudo_cast fixed
  • fix: explicit object parameter support fixed
  • fix: missing version header file added to hacks.h
  • fix: quantity_cast to accept lvalue references (thanks @burnpanck)
  • fix: value_cast with lvalue references to quantity_point (thanks @burnpanck)
  • docs: project blog and first posts added
  • docs: project documentation layout refactored
  • docs: "Interoperability with Other Libraries" chapter added
  • docs: "Framework Basics" chapters updated and cleaned up
  • docs: smoot unit example added to the main page
  • docs: "Code Example" chapter renamed to "Look and Feel" and reordered in TOC to be after "Quick Start"
  • docs: "Quick Start" chapter reworked to be simpler and include quantity points
  • docs: "Quantity points" chapter extended
  • docs: "The Affine Space" chapter updated to reflect the recent design changes
  • docs: "Working with Legacy interfaces" chapter added
  • docs: "Text Output" chapter updated
  • docs: mkdocs social plugin enabled
  • docs: project logo and custom color scheme added
  • docs: minimum compiler requirements updated
  • docs: unit symbols admonition extended in the "Quick Start" chapter
  • docs: Cairo dependency described in the MkDocs section
  • docs: "hello units" example updated with dimensions output
  • docs: "Text Output" chapter updated with the recent formatting changes
  • docs: formatting grammar language changed to EBNF
  • docs: "Project structure" chapter expanded
  • docs: CITATION.cff updated
  • (!) build: Conan and CMake options refactored
  • (!) build: MP_UNITS_AS_SYSTEM_HEADERS renamed to MP_UNITS_BUILD_AS_SYSTEM_HEADERS
  • (!) build: MP_UNITS_BUILD_LA and MP_UNITS_IWYU CMake options now have _DEV_ in the name
  • build: gsl-lite updated to 0.41.0
  • build: catch2 updated to 3.5.1
  • build: fmt updated to 10.2.1
  • build: gitpod environment updated
  • build: check_cxx_feature_supported added
  • build: IWYU path handling fixed
  • build: IWYU enabled on GCC
  • build: CMAKE_EXPORT_COMPILE_COMMANDS flag enabled for the developer's build
  • build(conan): generate() now set cache_variables
  • build(conan): can_run check added before running tests
  • ci: Conan and CMake CI now use different cache names
  • ci: gcc-14 added
  • ci: clang-tidy CI added