Skip to content

2.3.0

Compare
Choose a tag to compare
@mpusz mpusz released this 27 Sep 11:42
· 371 commits to master since this release
  • (!) feat: delta and absolute construction helpers
  • (!) feat: Conan and CMake options changed as requested at ConanCenter code review
  • (!) feat: unit_can_be_prefixed removed - from now on all named units can be prefixed
  • feat: formatting functions for units and dimensions marked as constexpr to enable compile-time text formatting
  • feat: qp1.quantity_from(qp2) added
  • feat: non-member swap added for fixed_string
  • feat: simplified inplace_vector added
  • feat: text output for angular units improved (space before symbol removed)
  • feat: representation type template parameter added to value conversion functions
  • feat: all tags in the expression templates are now ordered by the type names
  • feat: convertibility of a quantity with a unit one with the raw value added
  • feat: import std; support added
  • feat: compute values for rational magnitude powers (thanks @chiphogg)
  • feat: value_cast<Representation, Unit>() complementary conversion function added
  • feat: hw_voltage example added
  • feat: MP_UNITS_IMPORT_STD and MP_UNITS_MODULES handled properly in test_package.cpp
  • feat: complex quantity character added
  • feat: iec::var unit added
  • feat: type_list_unique added
  • feat: for_each on std::tuple added
  • feat: common_unit support added
  • (!) refactor: quantity_point_like_traits now use numerical value instead of the quantity
  • (!) refactor: iec80000 system renamed to iec
  • (!) refactor: mag_pi is now mag<pi>
  • (!) refactor: common_XXX() functions renamed to get_common_XXX()
  • refactor: error messages-related improvements
  • refactor: [[nodiscard]] and consteval set for some magnitude-related functions
  • refactor: degree Celsius and Fahrenheit symbols text now use Unicode codepoints
  • refactor: dimension_symbol and units_symbol refactored to use inplace_vector
  • refactor: unit_symbol and dimension_symbol refactored for readability and consteval
  • refactor: binary operators of quantity and quantity_point are now hidden friends
  • refactor: tag types-related operators are now hidden friends as well
  • refactor: ValuePreservingTo concept added
  • refactor: perfect forwarding interfaces improved
  • refactor: Representation concepts now requires WeaklyRegular instead of std::regular
  • refactor: quantity_point default-constructibility removed from the quantity_from constraints
  • refactor: has_common_type_v simplified
  • refactor: is_power_of_quantity_spec and is_power_of_dim variable templates converted to concepts
  • refactor: unnecessary custom versions of is_specialization_of removed
  • refactor: is_derived_from_specialization_of_v added and applied to remove custom traits
  • fix: signatures of capacity functions of fixed_string fixed
  • fix: MP_UNITS_API_NO_CRTP handling fixed
  • fix: MP_UNITS_HOSTED branch added to core.h
  • fix: mkdocs dependencies fixed in the gitpod dockerfile
  • fix: MP_UNITS_API_CONTRACTS should have a priority over headers availability
  • fix: si.h and angular.h now properly include hacks.h to define MP_UNITS_HOSTED before its usage
  • fix: quantity scaling between different prefixes improved
  • fix: conversion operator to std::chrono types fixed
  • fix: std::format does not always use Char* as iterators
  • fix: complex_power & co fixed
  • fix: __cpp_deleted_function workaround for clang-19 added
  • test: conversion to chrono unit tests added
  • test: unit tests for creating a quantity from a volatile variable
  • test: increase tolerance for certain math tests to two epsilon by @burnpanck
  • test: std::complex-based quantities tests added
  • build: conanfile bumped to use catch2/3.7.0
  • build: conanfile bumped to use fmt/11.0.1
  • build: minimum required CMake version bumped to 3.25
  • build: duplicated cmake_minimum_required commands removed
  • build: minimum conan version set to 2.0.15
  • build: MSVC compilation enabled for the library part by @czjhoppe
  • build: Dockerfile updated for gitpod
  • build: generate() in test_package now correctly propagates project's options
  • build: target_include_directories is not needed anymore
  • build: target_compile_features now uses CMAKE_CXX_STANDARD
  • build: package_type is dynamically set in conanfile.py depending if we build modules or not
  • build(conan): packaging improved
  • ci: added test for upstream clang on macos-14, as an example for an arm64 platform by @burnpanck
  • style: pre-commit updated to clang-format-18.1.8
  • docs: "Strong Angular System" chapter added
  • docs: docs updated to use new spelling for Conan options
  • docs: "Interface Introduction" chapter updated
  • docs: St. Louis 2024 report added
  • docs: "Radians and degrees support" added
  • docs: Rework of "Getting Started" section
  • docs: "API Reference" support added (thanks @JohelEGP)
  • docs: "Generating API reference" chapter added
  • docs: minor formatting and spelling improvements to the "CONTRIBUTING.md"
  • docs: "Unit symbols" chapter added
  • docs: examples line numbers fixed
  • docs: "Text Formatting" tag removed from avg_speed example
  • docs: line breaks in mermaid graphs fixed
  • docs: 2.3.0 release added