Releases: mpusz/mp-units
Releases · mpusz/mp-units
2.4.0
- (!) feat:
phase_velocityandgroup_velocityaliases removed from ISQ by ISO - feat:
iec::bitusing-declared iniec::unit_symbols - feat: common unit symbols now use
EQUIV{u1, u2, ...}syntax - feat:
scaled_unitsymbol printing improved ([]around the entire unit, small magnitude values do not use a power of10anymore) - feat:
scaled_unitdoes not have a priority overderived_unitanymore - feat: fractional exponents support added to
mag_power - feat: tag types are now required to be empty
- feat: magnitude text now obeys formatting parameters and knows how to print constants
- feat: added support for printing powers of magnitude constants
- feat:
SymbolicConstantconcept added - feat:
common_unitselection algorithm improved to makerev + radreturnrad - feat: litre text symbol changed from
ltoLto avoid ambiguity with1 - feat: alternative litre unit symbol
Ladded to prevent ambiguities with1 - feat: Unicode unit symbols
- feat:
πadded as an alias forpi - feat:
expr_powextended to remove redundancy in callers - feat:
DerivedDimensionExpr,DerivedQuantitySpecExprandDerivedUnitExprremoved - feat:
MagnitudeSpecExprandPowerVBaseremoved and some functions renamed to limit possible ambiguity in overload resolution - feat:
std::is_objectconstraint applied tovalue_type_t - feat:
quantity_valuesare now defined on top ofstd::chrono::duration_values - feat: from now on truncation is not allowed in compound assignment
- feat(example): currency example now uses
chrono::time_pointand has better interfaces - feat(example):
treat_as_floating_pointspecializations for examples' types removed - (!) refactor: all
iecquantity specifications are now deprecated and moved toisq - (!) refactor:
mag_constantnow takes a symbol and a value and the class deriving from it must be final - (!) refactor:
op==(U1, U2)now checks for the same type (old behavior available asequivalent(U1, U2)) +convertiblenow verifies associatedquantity_specas well - (!) refactor:
ascii->portable,unicode->utf8, 'A' -> 'P' - (!) refactor:
char_traitsremoved fromfixed_string - (!) refactor: convertibility traits and concepts refactored to use
boolflags instead of wrappers - (!) refactor: tag types should not expose their members
- refactor:
convertible(U1, U2)implementation simplified - refactor:
absmoved toconstexpr_math.h - refactor:
unit_symbol_implsimplified - refactor:
unit_symbol_formattingmoved to a dedicated header file - refactor:
shorten_Tremoved - refactor: magnitude interface cleanup
- refactor:
derived_from_the_same_base_dimensionno longer needed - refactor:
one_ofusage removed from thefixed_stringdeduction guides - refactor:
quantity.his not needed inconstants.h(unit.his enough) - refactor:
SameDimensionconcept is not needed and can be inlined inDimensionOf - refactor: framework Unicode symbols are now spelled using their codes
- refactor:
QuantitySpecWithNoSpecifiersremoved andkind_ofdefinition simplified - refactor:
treat_as_floating_pointsimplified and extended to usestd::chrono::treat_as_floating_point_v - refactor:
wrapped_type_treusesstd::indirectly_readable_traits - refactor:
expr_fractionstakes directOneTypetype now instead of a trait - refactor: Unicode symbols description reworked based on the latest SG16 recommendations
- refactor:
Mutableconcept applied toquantityandquantity_point - refactor:
explicitcleanup for deduction guides ofquantityandquantity_point - refactor:
point_origin_interface::op-cleanup - refactor:
QuantityLikeImplrefactored to conform to API Reference by @JohelEGP - refactor:
get_complexityrefactored to be 0-based and not account for a number of arguments in a list - refactor:
get_complexityrefactored to returned maximum complexity of an element (instead of the sum of elements) - refactor(test):
derived_quantityrefactored tochild_quantity - fix: missing
are_ingredients_convertibleoverloads added - fix: constraints for magnitude added for
scaled_unitand fixedcommon_unitinstantiating it incorrectly - fix: according to ISO 80000-16
%should always be prefixed with space - fix: extraneous space in unit symbol having only denominators removed
- fix: explicit cast added to
lessfor magnitudes to fix clang-arm64 conversion error - fix:
common_unithandling fixed for some corner cases - fix: math functions constraints fixed
- fix:
operator*(M, U u)fixed forUbeingscaled_unit - fix: subsumption of
QuantityKindSpecfixed - fix:
ValuePreservingTofixed to applystd::remove_cvref_tonFromRep - fix: compound assignment operations on quantities now behave the same as on the underlying representation types
- fix:
QuantityConvertibleToused inquantity_pointcompound assignment - fix:
convertible_kindsimplementation fixed - fix(tests): freestanding build fixed
- test: unit tests for the inverse of
mag_constantadded - test: Unicode symbols used in unit tests
- test: more
std::chronotests added - test: commutativity tests added to ISQ
- test: one
kind_oftest added to reference tests - test:
pow<0>andpow<1>tests added for dimensions - test: more
get_common_quantity_spectests added - build: setting of some test_package CMake options enabled only for a
cxx_modulesbuild - ci:
sudo apt updateadded for documentation.yml in hope that it will resolve missing system packages issue - ci: MSVC added to the CI
- ci: the latest not-released docs will use "HEAD" as a version from now on
- ci: documentation action should run on a new tag as well
- ci: documentation action limited only to commits that change documentation files
- ci: non-documentation actions should not run on tags
- docs: missing systems added to the "Project Structure" chapter
- docs: graphs of ISQ kind hierarchies improved
- docs: category of the ISO meeting reports changed to "WG21 Updates"
- docs: blog comments support added
- docs: Part 1-5 articles of the ISQ series added
- docs: "Symbols of scaled units" chapter added + minor updates to scaled and common units chapters
- docs: conan profile updated to present gcc-14 instead of gcc-12 which is no longer supported
- docs: "Why derived units order is not preserved from the multiplication?" chapter added to FAQ
- docs: "Many shades of the same unit" extended with a note about the derived units order
- docs: API Reference now presents index.html instead of full.hml
2.3.0
- (!) feat:
deltaandabsoluteconstruction helpers - (!) feat: Conan and CMake options changed as requested at ConanCenter code review
- (!) feat:
unit_can_be_prefixedremoved - from now on all named units can be prefixed - feat: formatting functions for units and dimensions marked as
constexprto enable compile-time text formatting - feat:
qp1.quantity_from(qp2)added - feat: non-member
swapadded forfixed_string - feat: simplified
inplace_vectoradded - 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
onewith 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_voltageexample added - feat:
MP_UNITS_IMPORT_STDandMP_UNITS_MODULEShandled properly intest_package.cpp - feat:
complexquantity character added - feat:
iec::varunit added - feat:
type_list_uniqueadded - feat:
for_eachonstd::tupleadded - feat:
common_unitsupport added - (!) refactor:
quantity_point_like_traitsnow use numerical value instead of the quantity - (!) refactor:
iec80000system renamed toiec - (!) refactor:
mag_piis nowmag<pi> - (!) refactor:
common_XXX()functions renamed toget_common_XXX() - refactor: error messages-related improvements
- refactor:
[[nodiscard]]andconstevalset for some magnitude-related functions - refactor: degree Celsius and Fahrenheit symbols text now use Unicode codepoints
- refactor:
dimension_symbolandunits_symbolrefactored to useinplace_vector - refactor:
unit_symbolanddimension_symbolrefactored for readability andconsteval - refactor: binary operators of
quantityandquantity_pointare now hidden friends - refactor: tag types-related operators are now hidden friends as well
- refactor:
ValuePreservingToconcept added - refactor: perfect forwarding interfaces improved
- refactor:
Representationconcepts now requiresWeaklyRegularinstead ofstd::regular - refactor:
quantity_pointdefault-constructibility removed from thequantity_fromconstraints - refactor:
has_common_type_vsimplified - refactor:
is_power_of_quantity_specandis_power_of_dimvariable templates converted to concepts - refactor: unnecessary custom versions of
is_specialization_ofremoved - refactor:
is_derived_from_specialization_of_vadded and applied to remove custom traits - fix: signatures of capacity functions of
fixed_stringfixed - fix:
MP_UNITS_API_NO_CRTPhandling fixed - fix:
MP_UNITS_HOSTEDbranch added tocore.h - fix: mkdocs dependencies fixed in the gitpod dockerfile
- fix:
MP_UNITS_API_CONTRACTSshould have a priority over headers availability - fix:
si.handangular.hnow properly includehacks.hto defineMP_UNITS_HOSTEDbefore its usage - fix: quantity scaling between different prefixes improved
- fix: conversion operator to
std::chronotypes fixed - fix:
std::formatdoes not always useChar*as iterators - fix:
complex_power& co fixed - fix:
__cpp_deleted_functionworkaround for clang-19 added - test: conversion to chrono unit tests added
- test: unit tests for creating a quantity from a
volatilevariable - 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_requiredcommands 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()intest_packagenow correctly propagates project's options - build:
target_include_directoriesis not needed anymore - build:
target_compile_featuresnow usesCMAKE_CXX_STANDARD - build:
package_typeis 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
2.2.1
2.2.0
- (!) feat: C++ modules support added by @JohelEGP
- (!) feat: New formatting specification implemented
- (!) feat:
has_unit_symbolsupport removed - (!) feat: ABI concerns resolved with introduction of u8 strings for symbols
- (!) feat: API-related Conan, CMake, and preprocessor options redesigned
- (!) feat:
core.hremoved - (!) 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, andisnanmath function added by @NAThompson - feat:
fmafor quantity points added - feat:
quantity_pointsupport added forquantity_castandvalue_cast - feat:
value_cast<Unit, Representation>added - feat:
value_cast<Quantity>(q),value_cast<Quantity>(qp)andvalue_cast<QuantityPoint>(qp)added by @burnpanck - feat:
interconvertible(QuantitySpec, QuantitySpec)added - feat:
qp.quantity_from_zero()added - feat:
value_typetype trait added - feat: do not print space between a number and
percentorper_mille - feat:
ppmparts per million added by @nebkat - feat:
atan22-argument arctangent added by @nebkat - feat:
fmodfloating-point division remainder added by @nebkat - feat:
remainderIEEE division remainder added by @nebkat - feat:
std::formatsupport added - feat: unit text output support added
- feat: formatting error messages improved
- feat: improve types readability by eliminating extraneous
()in references, prefixes, andkind_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_Fahrenheitrenamed tozeroth_degree_Fahrenheit - (!) refactor: SI-related trigonometric functions moved to the
sisubnamespace - (!) refactor:
math.hheader file broke up to smaller pieces - (!) refactor:
fixed_stringinterface refactored - (!) refactor:
ReferenceOfdoes not take a dimension anymore - (!) refactor: 'o' replaced with '1' as a modifier for
unit_symbol_solidus::one_denominator - (!) refactor:
get_kind()now returnskind_of - (!) refactor: FMT macros moved to
compat_macros.h - (!) refactor:
fixed_stringrefactored to reflect the latest changes to P3094R2 - (!) refactor:
basic_symbol_textrenamed tosymbol_text - (!) refactor:
ratiohidden as an implementation detail behindmag_ratio - (!) refactor:
framework.hintroduced - (!) 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_origindoes 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.hadded to improve compile-times - refactor:
validate_ascii_stringrefactored tois_basic_literal_character_set - refactor:
underlying_typesplit towrapped_typeandvalue_typeand used in code - refactor: code refactored to comply with clang-tidy
- refactor: remove dependency on
<ranges>header and switch to use an iterator-basedcopyalgorithm - refactor:
terminatereplaced withabortand a header file added - refactor: most
std::remove_const_tremoved and some replaced with the GCC-specific workaround - refactor: not needed
remove_reference_tandremove_cvref_tremoved - fix:
QuantityLikeconversions requiredQ::repinstead of using one provided byquantity_like_traits - fix:
QuantitySpec[Unit]replaced withmake_referenceinvalue_cast - fix:
ice_pointis now defined with the integral offset fromabsolute_zero - fix: performance regression in
sudo_castfixed - fix: explicit object parameter support fixed
- fix: missing
versionheader file added tohacks.h - fix:
quantity_castto accept lvalue references (thanks @burnpanck) - fix:
value_castwith lvalue references toquantity_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:
smootunit 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_HEADERSrenamed toMP_UNITS_BUILD_AS_SYSTEM_HEADERS - (!) build:
MP_UNITS_BUILD_LAandMP_UNITS_IWYUCMake 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_supportedadded - build: IWYU path handling fixed
- build: IWYU enabled on GCC
- build:
CMAKE_EXPORT_COMPILE_COMMANDSflag enabled for the developer's build - build(conan):
generate()now setcache_variables - build(conan):
can_runcheck added before running tests - ci: Conan and CMake CI now use different cache names
- ci: gcc-14 added
- ci:
clang-tidyCI added
v2.1.1
2.1.0
- (!) feat:
inverse()support added for dimensions, quantity_spec, units, and references
(1 / swill now createquantityand not aUnit) - (!) feat:
quantity_pointdoes not providezero()anymore - (!) feat:
quantity_specand its kind should not compare equal - (!) feat: mutating interface removed from
fixed_string - (!) feat:
common_typewith a raw value is not needed anymore as for a long time now raw values are
not convertible to the dimensionless quantities - (!) feat:
symbol_textdefinition simplified - (!) feat: users are now allowed to inherit their own types from absolute point origins
- (!) feat: interoperability with other libraries redesigned
- feat:
basic_fixed_string(const CharT*, std::integral_constant<std::size_t, N>)constructor added - feat:
isq::activityadded andbecquereldefinition updated to benefit from it - feat:
grayandsievertnow have correct associated quantity kinds - feat:
UnitCompatibleWithconcept added and applied toin(U)andforce_in(U)functions - feat: quantities can now be multiplied and divided by units (no parenthesis needed anymore)
- feat:
Magnitude / Unitoperator added - feat: equality for dimensions now will allow derived classes as well (but not from
derived_dimension) - feat:
zero_Fahrenheitpoint origin added - feat: equivalent point origins handling improved
- feat(example): unit symbols added to the currency example
- (!) refactor:
unit_symbol<fmt>(U)signature refactored and the resulting text can now also be used at runtime - (!) refactor:
make_xxxfactory functions replaced with two-parameter constructors - (!) refactor:
unit_symbolchanged toconsteval - refactor:
in(U)andforce_in(U)now returnautoto provide better diagnostics on clang - refactor:
quantityoperators constraints refactored - refactor: more type members added to
fixed_stringdefinition - refactor:
unit_symbol_formattingenums now usestd::int8_tas a representation type - fix: symbols of named dimensionless units with the ratio = 1 were not printed
- fix: iterator is now properly updated for all cases in
unit_symbol - fix: Fahrenheit conversion ratio was inverted
- fix:
CommonlyInvocableQuantitieswas overconstrained for the current library design - fix:
are_ingredients_convertiblenow mandates explicit conversion forTodimensionless quantities - fix:
quantity_point::point_for(PO)constraints fixed - fix(example):
latitudeandlongitudefixed to include0forNandErespectively - ci: clang-17 enabled
- ci: apple-clang-15 enabled
- ci: Added C++23 builds to the CI matrix
- docs: "Getting Started" chapters updated
- docs: "Basic Concepts" and "Interface Introduction" chapters updated
- docs: "Design Overview" chapter added and "Concepts" chapter reworked
- docs: "Output stream formatting" chapter updated
- docs: "Default formatting" chapter updated
- docs: "Derived unit symbols generation" chapter added
- docs: outdated affine space chapter updated
- docs:
CameCaseconcept identifiers FAQ added - docs:
gravitational_potential_energyequation fixed on a graph - docs: YouTube video link updated to the C++ on Sea 2023
- docs: ISO papers reference added to docs and README
- docs: a representation type in a dimensionless quantity FAQ fixed
- docs: titles added to some important admonitions
- docs: "Terms and Definitions" slightly updated
- docs: "canonical unit" added to glossary and its documentation in code was updated
- docs: Design overview graph updated
2.0.0
IMPORTANT: This is a breaking release. The mp-units library got totally new look & feel with the V2 engine.
unitsnamespace renamed tomp_units(#317)- header files in the
<mp-units/...>rather then in<units/...>(#317) - the downcasting facility is removed (#383, #211, #32)
- unified and simplified quantity creation (#274)
- determining the best way to create a quantity (#413)
- V2
quantity_point(#414) - introduction of
quantity_specto store not onlydimensionbut also additional information about quantities (#405) quantitynow takesreferenceobject, which aggregatesquantity_specand aunitand arepresentationtype- units, prefixes, dimensions, quantity specifications, and references are passed as NTTPs to templates and provide arithmetic operations and comparison
- expression templates consistently used in all derived types to increase the readability (#351, #166)
- derived dimensions are now factors of only base dimensions (#281)
- convertibility of derived quantities (#427)
- dimensions, quantity specifications, units, and references are now composable, significantly reducing the number of definitions and resulting types
- heavily simplified unit systems definitions (no need to define unnamed derived units, systems-specific dimensions, aliases for quantities, concepts, UDLs, ... anymore)
- improved definition of all systems
- support for ISO 80000 Part 3-6 quantities
- faster than lightspeed constants (#169)
- extensions to quantity formatting with
fmt quantity_kindremoved- improved casting of unit with
.in(Unit),.force_in(Unit)forquantityandquantity_spec - numerical value accessor safety improved with
.numerical_value_in(Unit)and.force_numerical_value_in(Unit) quantitycan no longer be constructed with a raw value (#434)- Implicit construction of quantities from a value (#410)
quantity_pointcan no longer be constructed with just aquantityand an explicitPointOriginis always neededceilandfloorare dangerous (#432)- quecto, ronto, ronna, quetta new SI prefixes support
- comparison against zero added (#487)
- documentation rewritten from scratch
- many smaller changes not possible to address with the previous design (#205, #210, #134)
The last of its kind
- (!) refactor:
common_quantity,common_quantity_for,common_quantity_point,common_quantity_kind, andcommon_quantity_point_kindremoved - (!) refactor:
named_derived_unitremoved as it was not used - (!) refactor:
derived_unitrenamed toderived_scaled_unit - (!) refactor:
unitrenamed toderived_unit - (!) refactor:
U::is_namedremoved from the unit types and replaced withNamedUnitconcept - (!) refactor:
PrefixFamilysupport removed - (!) refactor:
mi(naut)renamed tonmi - (!) refactor:
knotunit helper renamed toknin FPS - (!) refactor:
knottext symbol changed from"knot"to"kn" - refactor:
quantityop+()andop-()reimplemented in terms ofreferencerather thenquantitytypes - refactor(example):
glide_computernow use dimensionless quantities withranged_representationasrep - feat: HEP system support added (thanks @RalphSteinhagen)
- feat:
floor(),ceil(), andround()support added (thanks @hofbi) - feat:
std::formatsupport for compliant compilers added - feat: conversion helpers from
mp-unitstostd::chronotypes added - feat: math functions can now be safely used with user-defined types
- feat: conversion from
quantity_pointtostd::chrono::time_pointadded - feat:
nautical_mile_per_hourandknotadded tosi::internationalsystem - (!) fix: add
quantity_point::origin, likestd::chrono::time_point::clock - fix: enable any prefixes for most of the named units (beside those that use prefixes already)
- fix:
hectaredefinition fixed to be a prefixed version ofare+ other units - fix: account for different dimensions in
quantity_point_cast's constraint - fix: output stream operator now properly handles state
- fix:
fmtalgorithms were overconstrained withforward_iterator - fix: CTAD for aliases fixed
- fix:
derived_ratiocalculation - fix:
fill_tassignment operator fixed - fix: improve downcast mode off
- fix:
radioactivityheader compilation fixed - fix:
si::hep::dim_momentumduplicated definition fixed - fix:
fpscan now coexist withinternationalsystem - fix: public headers fixed to be standalone
- test: standalone public headers tests added
- (!) build: CMake generator in Conan is no longer obtained from an environment variable
- (!) build: Required Conan version bumped to 1.48
- (!) build: Conan 1.48 does not set
CMAKE_BUILD_TYPEin theconan_toolchain.cmakeanymore - build: AppleClang 13 support added (thanks @fdischner)
- build: most of the
conanfile.pyrefactored to be Conan 2.0 ready - build:
validate()replaced withconfigure()to raise errors duringconan installin Conan 1.X - build: minimum Conan version changed to 1.40
- build:
linear-algebraConan repo is no needed anymore - build: Gitpod support added
- build: clang-format-15 support added
- build: export config to local build (#322)
- build: fix export name of
mp-units-system - build: fmt updated to 8.0.1
- build: gsl-lite updated to 0.40.0
- build: catch2 updated to 2.13.9
- build: doxygen updated to 1.9.4
- build: linear_algebra/0.7.0 switched to wg21-linear_algebra/0.7.2
- ci: VS2022, gcc-11, clang-13, clang-14, and AppleClang 13 support added
- ci: pre-commit support added (thanks @hofbi)
- docs: Project documentation updated
- docs:
CITATION.cfffile added - docs:
CONTRIBUTING.mdupdated
0.7.0
- (!) refactor:
ScalableNumberrenamed toRepresentation - (!) refactor: output stream operators moved to the
units/quantity_io.hheader file - (!) refactor: Refactored the library file tree
- (!) refactor:
quantity::count()renamed toquantity::number() - (!) refactor:
datasystem renamed toisq::iec80000(quantity names renamed too) - (!) refactor:
*deduced_unitrenamed to*derived_unit - (!) refactor: got rid of a
noble_derived_unit - refactor: quantity (kind) point updated to reflect latest changes to
quantity - refactor: basic concepts,
quantityandquantity_castrefactored - refactor:
abs()definition refactored to be more explicit about the return type - feat: quantity (point) kind support added (thanks @johelegp)
- feat: quantity references support added (thanks @johelegp)
- feat: quantity aliases support addded
- feat: interoperability with
std::chrono::durationand other units libraries - feat: CTAD for dimensionless quantity added
- feat:
modulation_ratesupport added (thanks @go2sh) - feat: SI prefixes for
isq::iec80000support added (thanks @go2sh) - feat: a possibility to disable quantity UDLs support with
UNITS_NO_LITERALSpreprocessor define - feat: a support to define ISQ derived dimensions in terms of different number or order of components
- perf: preconditions check do not influence the runtime performance of a Release build
- perf:
quantity_cast()generates less assembly instructions - perf: temporary string creation removed from
quantity::op<<() - perf: value initialization for quantity value removed (left with a default initialization)
- perf: limited the
equivalenttrait usage - perf: limited the C++ Standard Library headers usage
- perf: rvalue references support added for constructors and getters
- (!) fix:
exp()has sense only for dimensionless quantities - (!) fix:
dim_torquenow properly divides by an angle (instead of multiply) + default unit name change - fix: quantity's operators fixed to behave like the underlying types do
- fix:
quantity_cast()fixed to work correctly with representation types not convertible fromstd::intmax_t - fix: ambiguous case for empty type list resolved
- fix: downcasting facility for non-default-constructible types
- fix: restore user-warnings within the library implementation
- fix: the text symbol of
foot_pound_forceandfoot_pound_force_per_second - fix: quantity modulo arithmetics fixed
- (!) build: Conan testing version is now hosted on Artifactory
- (!) build: Linear Algebra is now hosted on its Artifactory
- (!) build:
BUILD_DOCSCMake option renamed toUNITS_BUILD_DOCS - build: doxygen updated to 1.8.20
- build: catch2 updated to 2.13.4
- build: fmt updated to 7.1.3
- build: ms-gsl replaced with gsl-lite/0.38.0
- build: Conan generator switched to
cmake_find_package_multi - build: Conan CMakeToolchain support added
- build: CMake scripts cleanup
- build: ccache support added
- ci: CI switched from Travis CI to GitHub Actions
CppCon 2020
- feat:
quantity_pointsupport added (thanks @johelegp) - feat: Added angle as SI base dimension (thanks @kwikius)
- feat:
si::angular_velocitysupport added (thanks @mikeford3) - feat: FPS system added (thanks @mikeford3)
- feat: Added support for mathematical function
exp(quantity) - feat: Localization support for text output added (thanks @rbrugo)
- feat: Added STL random number distribution wrappers (thanks @yasamoka)
- (!) refactor: Refactored and cleaned up the library file tree
- (!) refactor:
q_*UDL renamed to_q_* - (!) refactor: UDLs with "per" in name renamed from
*p*to*_per_* - (!) refactor:
ratiochanged to the NTTP kind - (!) refactor:
expandExprenamed toexponentandExponent - (!) refactor:
Scalarconcept renamed toScalableNumber - (!) refactor: Dimensionless quantities redesigned to be of a
quantitytype - refactor:
math.hfunction signatures refactored to use aQuantityconcept (thanks @kwikius) - refactor:
[[nodiscard]]added to many functions - fix:
si::dayunit symbol fixed tod(thanks @komputerwiz) - fix:
si::moleunit symbol fixed tomol(thanks @mikeford3) - (!) build: gcc-9 is no longer supported (at least gcc-10 is required)
- build: Visual Studio 16.7 support added
- build: linear_algebra updated to 0.7.0/stable
- build: fmt updated to 7.0.3
- build: range-v3 updated to 0.11.0
- build: catch2 updated to 2.13.0
- build: doxygen updated to 1.8.18
- build: ms-gsl 3.1.0 dependency added
- build: Removed the dependency on a git submodule with common CMake scripts