Commit Graph
2030 Commits
Author SHA1 Message Date
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
Mateusz Pusz f99a73a75f refactor: "expression templates" renamed to "symbolic expressions" 2024-11-28 15:34:52 +01:00
Mateusz Pusz 1c4f744eac fix: compilation fixed again (stupid modules build does not recompile properly and the local build has passed twice with errors in the code :-() 2024-11-26 22:48:56 +01:00
Mateusz Pusz 6883e38573 fix: compilation fixed after the previous commit 2024-11-26 22:38:44 +01:00
Mateusz Pusz 6bfcc3a8ba feat: precondition added to to_u8string 2024-11-26 22:32:09 +01:00
Mateusz Pusz d6002ce419 refactor: 💥 quantity_values renamed to representation values 2024-11-26 18:36:37 +01:00
Mateusz Pusz 52b003e6ea fix: std::abs freestanding compilation issue fixed 2024-11-26 16:54:05 +01:00
Mateusz Pusz 781aa84a82 refactor: inline replaced with MP_UNITS_INLINE 2024-11-26 16:52:36 +01:00
Mateusz Pusz 41a803d025 fix: header dependency fixed in complex.h 2024-11-26 15:42:03 +01:00
Mateusz Pusz c7eb981f4f fix: missing poison pills added 2024-11-26 15:40:15 +01:00
Mateusz Pusz 2f3399e02f fix: gcc compilation fixed 2024-11-26 15:12:50 +01:00
Mateusz Pusz 465f88d500 refactor: 💥 is_XXX customization points for representation types removed 2024-11-26 14:48:08 +01:00