| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 2.5.0 source code.tar.gz | 2025-12-24 | 738.2 kB | |
| 2.5.0 source code.zip | 2025-12-24 | 1.0 MB | |
| README.md | 2025-12-24 | 15.3 kB | |
| Totals: 3 Items | 1.8 MB | 2 | |
- (!) feat: representation concepts improved
- (!) feat:
representation_ofconcept now also accepts aquantity_specand accepts any representation character for quantity kinds - (!) feat:
quantity::one()removed - (!) feat:
Representationconcept removed - feat:
SymbolicArgapplied to expression templates - feat:
perandpowermadefinal - feat:
derived_XXXare now constrained withSymbolicConstant - feat: prime factorization extended to any magnitude (thanks @chiphogg)
- feat:
cartesian_vectoradded - feat:
equivalentnow 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_specconversions improved - feat:
rankineunit added - feat:
std::numeric_limitssupport added - feat:
scaling_overflows_non_zero_valuesadded to detect conversions overflowingrep - feat: deprecation messages now provide the release version where the deprecation happened
- feat: electromagnetism.h updated to IEC80000-6-2022 with raw numbers
- feat:
lerpandmidpointfor points added - feat:
is_value_preservingcustomization point added - feat:
EQUIV{...}replaced with[...]in the text output of common units - feat:
constexpr_formatadded - feat:
unsatisfiedadded and enabled throwing constraints - feat: some constraints refactored to throw exceptions with nice error messages
- feat: explicit constructor now can perform an explicit
quantity_specconversion - feat: natural units support is now opt-in
- feat:
value_type_tis now recursive - feat: support for
rootof negative numbers removed - feat: old MSVC workarounds disabled for the latest version
- feat:
invoke_with_prefixedadded to SI - feat:
QuantityLikeshould not satisfy theRepresentationconcept - feat(example):
is_vectorspecialization no longer needed forsi_constants - feat(example): measurement.h extracted for easier reuse
- feat(example):
clcpp_responseandconversion_factorexamples removed - (!) refactor:
type_listmoved to implementation details - (!) refactor: from now
unit_symbolanddimension_symbolalways returnsstd::string_view - (!) refactor:
text_encodingrenamed tocharacter_set - (!) refactor:
Magnituderenamed toUnitMagnitudeandmagnitudetounit_magnitude - (!) refactor:
unit_magnitudemoved todetailnamespace - (!) refactor:
absoluterenamed topoint - (!) refactor:
powermembers refactored to be explicitly exposition only - (!) refactor:
is_XXXcustomization points for representation types removed - (!) refactor:
quantity_valuesrenamed to representation values - (!) refactor:
scalarandcomplexcharacters renamed toreal_scalarandcomplex_scalarrespectively + concepts refactoring - (!) refactor:
MagConstantconcept renamed todetail::is_mag_constantvariable trait - (!) refactor:
format.hheader file made deprecated - (!) refactor:
ostream.hheader file made deprecated - (!) refactor: rename
default_denominatortodefault_solidusinunit_symbol_solidusenum - refactor: mp_units.core defined in terms of
core.h - refactor:
MP_UNITS_NONCONST_TYPEintroduced to benefit from the C++23 feature - refactor:
SymbolicConstantconcept refactored - refactor: explicit type of
op/forquantityandreferencereplaced with constrained placeholder - refactor: private
unit_magnitudeinterface renamed to not use leading_ - refactor:
one_ofconcept removed and replaced withQSPropertyinquantity_spec - refactor:
std::is_trivialwill be deprecated in C++26 - refactor:
SameQuantitySpecconcept removed and replaced with direct comparison - refactor: unused
SameReferenceconcept removed - refactor:
type_name_lessintroduced and used as a default predicate for expression templates - refactor: "expression templates" renamed to "symbolic expressions"
- refactor:
all_are_kindsremoved andget_associated_quantitysimplified - refactor:
referencenow returns explicit types forinverse,pow,sqrt, andcbrt - refactor: repeated concept checks removed from
get_common_reference - refactor:
std::assignable_fromused inValuePreservingToconcept - refactor:
quantityconstructor refactored to use another constructor with the result ofsudo_cast - refactor: preconditions for quantity operations now use
is_neq_zero - refactor: implicit expression variations used in
quantityandquantity_pointconstraints - refactor:
inverse()constraints improved - refactor:
make_quantity_pointintroduced - refactor:
point_origin_interface::op+return type unified with the rest of the interfaces - refactor:
std::convertible_toreplaced withstd::same_asinbasic_fixed_string - refactor:
less,ceil, androundrefactored and improved + more unit tests forround - refactor:
math_concepts.hremoved and concepts replaced with explicit expression in constraints - refactor:
visit_format_argis 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:
ValuePreservingScalingconcepts renamed - refactor:
common_typespecializations refactored - refactor:
NumberLikerenamed toDimensionlessOne - refactor: branching on a deprecated C++ feature improved
- refactor: all CTADs made implicit
- refactor:
MP_UNITS_REMOVE_CONSTgcc workaround added toRepresentationOf - refactor:
ReferenceOfconcept 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_haefunction refactored toHAEAltitudeconcept - (!) fix:
electric_current_phasor,voltage_phasor,apparent_powerswitched to complex character - (!) fix:
position_vectoranddisplacementmoved to a different place in a tree - (!) fix:
velocityis now defined in terms ofdisplacementinstead ofposition_vector - fix: missing
core.hadded to CMake - fix:
constwas leaking to someSymbolicConstants - fix:
make_referenceshould 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 ofdimensionless - fix:
point_origin_interface::op+constraints fixed - fix: missing
get_common_unit()overload added - fix:
floorandceilconstraints fixed - fix: quantity characters fixed in electromagnetism quantities
- fix:
arg.visitsupport fixed - fix:
expr_lessnow also sorts powers - fix:
mag_constantworkarounds branches for clang fixed - fix: checking for clang versions fixed in CMake scripts
- fix: text stripping in
type_namefixed - fix: make quantity conversion to
Repconstexpr(thanks @KangarooKoala) - fix: MSVC compilation fixed
- fix:
absinterface and implementation improved - fix: unused parameters removed from
scaling_overflows_non_zero_values - fix: invalid precondition check in
rootremoved - fix: workaround for fmt
- fix: CTAD issue workaround for MSVC
- fix:
dynamic_spec_id_handlerfixed for gcc-15 - fix: MSVC workarounds for
constevalfunctions - 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_unitcan now be created forkind_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_UNITSOFF - fix: missing natural units support added to
package_info() - fix: freestanding build error in Conan
package_info()(thanks @kammce) - fix: replace
wstring_viewwithbasic_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_computerdocumentation - 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
quantitysatisfiesScalar - test: add static tests for concept
DimensionOf(thanks @jvocht) - test: quantity character concepts tests for quantities added
- test: duplicated
dimensionlesstests 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:
contractsConan 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:
complexcharacter 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:
CheckCacheVarValuesCMake module file added - build:
MP_UNITS_DEV_TIME_TRACECMake option added - build:
MP_UNITS_API_NO_CRTPremoved fromtest_packageCMake - 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_stdset toFalseby default - build:
wg21-linear_algebradependency removed - build:
check_libcxx_in_useimproved - 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_thisenabled for AppleClang 17 and MSVC 19.32 (thanks @alex-tee) - build: add
build: add INSTALL option to cmakeoption to cmake (thanks @alex-tee) - build: projectPrefix CMake variable removed
- build:
MP_UNITS_BUILD_AS_SYSTEM_HEADERSremoved - build:
warnings.cmakerefactored to useCMAKE_COMPILE_WARNING_AS_ERROR - build:
CMAKE_COMPILE_WARNING_AS_ERRORset in conanfile - build:
PROJECT_IS_TOP_LEVELused inensure_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_MODULESfortest_package - build:
MP_UNITS_BUILD_CXX_MODULESwill now be always provided by Conan - build: CMake CI should run the cmake executable provided by Conan
- build: C++23 enabled for
test_packagewhenimport stdis ON - build: all
target_compile_definitionsaggregated in one place - ci: CI matrix generation added (thanks @burnpanck)
- ci:
import_stdnow 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
constevalfunctions execution added - perf:
expr_projectableconcept 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