Commit Graph
2091 Commits
Author SHA1 Message Date
Mateusz Pusz 0b14d69539 feat: quantity::one() removed
Related to #408
2025-02-05 12:08:32 +01:00
Mateusz Pusz a74658937a feat: rankine unit added 2025-01-22 11:01:36 +01:00
Mateusz Pusz becb456da5 fix: missing get_common_unit() overload added
Resolves #666
2025-01-21 12:37:54 +01:00
Mateusz Pusz b2dbc1e69a refactor: std::convertible_to replaced with std::same_as in basic_fixed_string 2025-01-13 19:18:52 +01:00
Mateusz Pusz 0ba48b72f4 fix: make_quantity_point constraints fixed 2025-01-10 23:05:36 +01:00
Mateusz Pusz c7b822ec54 fix: point_origin_interface::op+ constraints fixed 2025-01-10 22:59:56 +01:00
Mateusz Pusz 3bac7a4876 fix: inverse(Quantity) fixed for subkinds of dimensionless 2025-01-10 22:50:26 +01:00
Mateusz Pusz e15205e47c refactor: point_origin_interface::op+ return type unified with the rest of the interfaces 2025-01-09 14:01:39 +01:00
Mateusz Pusz 7ed5707e31 refactor: make_quantity_point introduced 2025-01-09 13:46:42 +01:00
Mateusz Pusz 2d10a30d27 fix: compile-time branch condition fixed in quantity_point::point_for 2025-01-09 13:44:21 +01:00
FrancoisCarouge 9adfa6ea43 fix: quantity_spec missing lint block end 2024-12-30 12:31:53 -08:00
Mateusz Pusz 6f0a81ac80 fix: unit_symbol() and dimension_symbol() returns now std::basic_string_view<CharT> 2024-12-29 11:01:43 +01:00
Mateusz Pusz e94df6e895 fix: unused convertible_kinds() argument removed 2024-12-28 22:23:38 +01:00
Mateusz Pusz 814f937e03 fix: MSVC build fixed 2024-12-28 22:19:35 +01:00
Mateusz Pusz dd6f29b65e fix: std::tuple is not freestanding on gcc-14 with C++23 2024-12-28 21:00:08 +01:00
Mateusz Pusz 5382e08fdd fix: compilation fixed after rebase 2024-12-28 14:12:28 +01:00
Mateusz Pusz a9525fa301 fix: inconsistencies in get_common_quantity_spec() fixed 2024-12-28 14:02:22 +01:00
Mateusz Pusz 71917a41dc refactor: inverse() constraints improved 2024-12-28 14:02:22 +01:00
Mateusz Pusz 06cbfae3b3 feat: quantity_spec conversions improved 2024-12-28 14:02:03 +01:00
Mateusz Pusz b685521a18 Revert "refactor: QuantitySpec convertibility concepts replaced with direct function calls"
This reverts commit 09488409d2.
2024-12-28 13:52:24 +01:00
Mateusz Pusz 146d7a32fb Merge branch 'master' of github.com:mpusz/units 2024-12-28 13:50:10 +01:00
Roth Michaels 43729c6190 Enable use of std::format for AppleClang / Xcode 16
Specified the minimum apple-clang version to support `std::format` to 16
for _connanfile.py_.  Xcode 16 does include the `<format>` header but
does not seem to have the __cpp_lib_format compatibility macro defined
so a similar override was needed as we had for Clang 17.

To be able to use `std::format` with Xcode 16 I had to pass
`-DMP_UNITS_API_STD_FORMAT=AUTO` when calling `cmake`.  Is this expected
or is this a sign I missed something in my changes to _CMakeLists.txt_?
2024-12-19 12:54:55 -05:00
Roth MichaelsandMateusz Pusz 90aa52a6cc Update src/core/include/mp-units/framework/representation_concepts.h
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-12-19 11:21:17 -05:00
Roth Michaels ada508a683 Do not use WeaklyRegular with Xcode 15 for type detection
Removing the `WeaklyRegular` requirement from the `Scalar`, `Complex`,
and `Vector` concepts seems to address compiler crashes or long
compilation times with apple-clang included in Xcode 15.

I thought I had previously tried removing the `WeaklyRegular`
requirement and it had not solved the problem but either I made a
mistake with this test or some other changes after rebasing this work
changed the situation.
2024-12-19 11:19:09 -05:00
Roth MichaelsandMateusz Pusz 0c3bb98c6d Update src/core/include/mp-units/framework/representation_concepts.h
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-12-09 18:11:03 +01:00
Roth MichaelsandMateusz Pusz ec3f000050 Update src/core/include/mp-units/framework/representation_concepts.h
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-12-09 18:10:56 +01:00
Roth Michaels d30f5a668c clang-format fixes 2024-12-09 18:01:27 +01:00
Roth Michaels c3e45088a6 Fixes for apple-clang crashes and performance issues
The source of the crash with the latest changes seemed to be from the
`IsOfCharacter` concept.  This concept was refactored to use some type
traits and more simple concepts although with less strict requirements.

A new macro, `MP_UNITS_APPLE_CLANG_HACKS` was added to
mp-units/bits/hacks.h to enable work arounds for pre-Xcode 16.1 apple-clang.

Some tests were not passing and were removed with the preprocessor macro
for apple-clang hacks is defined.

Adding `ComplexFunctionsAvailable` and `VectorFunctionsAvailable` fixed
some test failures in concepts_test.cpp but not all.
2024-12-09 17:39:21 +01:00
Mateusz Pusz 09488409d2 refactor: QuantitySpec convertibility concepts replaced with direct function calls 2024-12-09 15:55:21 +01:00
Mateusz Pusz 7eab29c40a fix: gcc-12 compilation workaround 2024-12-04 21:14:17 +01:00
Mateusz Pusz 4f75a48ba3 refactor: WeaklyRegular removed from ScalableWith 2024-12-04 21:14:02 +01:00
Mateusz Pusz 054e28671c refactor: implicit expression variations used in quantity and quantity_point constraints 2024-12-04 20:21:32 +01:00
Mateusz Pusz b98c640450 feat: missing precondition added for quantity::op/ 2024-12-04 20:10:47 +01:00
Mateusz Pusz 29ba8e6f7c refactor: preconditions for quantity operations now use is_neq_zero 2024-12-04 20:10:18 +01:00
Mateusz Pusz 971197b9e5 refactor: quantity constructor refactored to use another constructor with the result of sudo_cast 2024-12-04 20:08:02 +01:00
Mateusz Pusz 7e789bc1f1 refactor: std::assignable_from used in ValuePreservingTo concept 2024-12-04 19:57:58 +01:00
Mateusz Pusz 6cd7d388b1 refactor: WeaklyRegular moved to the end of the representation constraints 2024-12-04 19:57:16 +01:00
Mateusz Pusz e44bb7ed55 style: small cleanup of representation concepts 2024-12-01 14:14:19 +01:00
Mateusz Pusz a444c53fe7 refactor: representation concepts refactored to properly support implicit expression variations 2024-12-01 14:13:41 +01:00
Mateusz Pusz c582801d84 feat: ScalableWith isolated from Scalar and added as a constraint to Complex and Vector 2024-12-01 14:08:05 +01:00
Mateusz Pusz 4831928802 refactor: Scalar concept refactored to give it a chance to preserve the input type for types simliar to quantity 2024-12-01 14:00:52 +01:00
Mateusz Pusz c7006f8813 refactor: repeated concept checks removed from get_common_reference 2024-12-01 13:45:34 +01:00
Mateusz Pusz e585fd9e37 refactor: reference now returns explicit types for inverse, pow, sqrt, and cbrt 2024-12-01 13:39:14 +01:00
Mateusz Pusz 19a2019204 feat: proper constraints for kind_of 2024-11-29 21:20:37 +01:00
Mateusz Pusz 0cc26f4f46 feat: abs(quantity) exposed for conforming freestanding implementations 2024-11-29 13:21:34 +01:00
Mateusz Pusz 51bc3ea5bd fix: IWYU 2024-11-29 13:19:54 +01:00
Mateusz Pusz 4280e54081 fix: get_quantity_spec compilation fixed on MSVC 2024-11-29 13:19:25 +01:00
Mateusz Pusz f0885f8027 feat: scaled units are now enclosed in parenthesis (...) instead of brackets [...] 2024-11-29 12:17:53 +01:00
Mateusz Pusz 9c4671790e refactor: all_are_kinds removed and get_associated_quantity simplified 2024-11-29 11:10:20 +01:00
Mateusz Pusz a223c08a39 refactor: multiplication and division by scalars was a bad idea for Complex and Vector 2024-11-28 23:02:11 +01:00