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 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
db64534f34
test: tests to check if quantity satisfies Scalar
2024-12-01 14:15:56 +01:00
Mateusz Pusz
52e95f9b2e
test: a few more natural units tests added
2024-11-29 11:11:13 +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
465f88d500
refactor: 💥 is_XXX customization points for representation types removed
2024-11-26 14:48:08 +01:00
Mateusz Pusz
1581fa59ad
test: extend concepts tests with cartesian_vector as a representation
2024-11-14 20:42:21 +01:00
Mateusz Pusz
2590aa4b80
refactor: MP_UNITS_NONCONST_TYPE introduced to benefit from the C++23 feature
2024-11-13 21:13:22 +01:00
Mateusz Pusz
06853b7aeb
fix: const was leaking to some SymbolicConstants
2024-11-08 12:57:29 +01:00
Mateusz Pusz
75b50b8d2c
feat: complex.h added
2024-11-07 10:58:51 +01:00
Mateusz Pusz
c7303cc5fb
refactor: representation concepts refactored + some quantities switched to complex
2024-11-05 19:09:16 +01:00
Mateusz Pusz
569f27af8b
fix: common_unit handling fixed for some corner cases
2024-10-05 17:52:52 +02:00
Mateusz Pusz
45013f6752
fix: inline restored for non-template constexpr global variables
2024-09-05 10:06:43 +02:00
Mateusz Pusz
2e840cfdb4
refactor: Repetitive inline constexpr removed as no longer needed
...
Not needed anymore as stated in cplusplus/draft#4601
2024-09-05 08:43:36 +02:00
Mateusz Pusz
77625d63cb
feat: 💥 unit_can_be_prefixed removed - from now on all named units can be prefixed
...
Resolves #604
2024-08-22 08:06:00 +02:00
Mateusz Pusz
b870b85c25
feat: import std; support added
...
Resolves #595
2024-07-16 17:36:00 +02:00
Mateusz Pusz
0010d868a7
feat: tag types-related operators are now hidden friends as well
...
Resolves #591
2024-07-12 16:01:03 +02:00
Mateusz Pusz
05fc1e29c8
refactor: 💥 from now on point origins must be marked final + absolute_point_origin does not use CRTP anymore
2024-06-13 19:24:40 +02:00
Mateusz Pusz
5f67523a8a
feat: 💥 from now on quantity specifications have to be marked as final
2024-06-13 12:05:16 +02:00
Mateusz Pusz
6aa848a456
feat: 💥 from now on dimnensions have to be marked as final
2024-06-12 14:17:32 +02:00
Mateusz Pusz
4aea85656b
refactor: units no longer inherit from each other
2024-06-06 13:16:13 +02:00
Mateusz Pusz
fb77585593
refactor: system's units do not inherit from one another anymore
...
Resolves #512
2024-06-05 08:16:02 +02:00
Mateusz Pusz
1ea2df9209
refactor: most std::remove_const_t removed and some replaced with the GCC-specific workaround
2024-06-01 09:12:16 +02:00
Mateusz Pusz
cd36e6f974
feat: freestanding support added
...
Resolves #564 , #565 , and #556
2024-05-30 19:50:02 +02:00
Mateusz Pusz
8ea346be1c
refactor: 💥 header files with the entire system definitions moved up in the directory tree
2024-04-25 16:34:11 +02:00
Mateusz Pusz
c066104af7
refactor: 💥 framework.h introduced + IWYU
2024-04-24 21:09:29 +02:00
Mateusz Pusz
5ca9168381
feat: proper exports implemented for C++ modules
2024-02-23 21:09:17 +01:00
Mateusz Pusz
b4f07f6e7c
refactor: 💥 ReferenceOf does not take a dimension anymore
...
It seems unneeded and removing this check greatly simplifies common compilation errors.
2024-01-19 10:35:32 +01:00
Mateusz Pusz
0eaf6e2e56
refactor: modules support redesigned
2024-01-06 08:51:01 +01:00