Mateusz Pusz
47a82f466c
refactor: scalar and complex renamed to real_scalar and complex_scalar respectively + concepts refactoring + electromagnetism fixes
2025-02-11 17:26:19 +01:00
Mateusz Pusz
fa482c9246
feat: deprecation messages now provide the release version where the deprecation happened
2025-02-11 10:07:34 +01:00
Mateusz Pusz
c6e95a9fc7
refactor: limits.h removed and the contents moved to quantity.h and quantity_point.h
...
Resolves #673
2025-02-06 17:16:12 +01:00
Mateusz Pusz
51559d094b
refactor: might_store_converted_value refactored to overflows_non_zero_values
2025-02-06 16:55:37 +01:00
Mateusz Pusz
d5a846af3d
fix: MSVC compilation fixed
2025-02-06 16:21:47 +01:00
Mateusz Pusz
5d4e1aa740
feat: might_store_converted_common_value added to detect conversions overflowing rep
...
Resolves #670 , resolves #671 , resolves #658 , resolves #303
2025-02-06 15:28:55 +01:00
Mateusz Pusz
88439828a5
feat: std::numeric_limits support added
...
Resolves #408
2025-02-05 18:04:43 +01:00
Mateusz Pusz
b8855dc7ba
fix: floor and ceil constaints fixed
2025-02-05 17:27:32 +01:00
Mateusz Pusz
8d2dddb8b6
refactor: less, ceil, and round refactored and improved + more unit tests for round
...
Resolves #672
2025-02-05 12:10:36 +01:00
Mateusz Pusz
0b14d69539
feat: quantity::one() removed
...
Related to #408
2025-02-05 12:08:32 +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 and Mateusz 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 Michaels and Mateusz 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 Michaels and Mateusz 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