Skip to content

Commit d00108b

Browse files
committed
fix: gcc-15 bug workaround and hopefully a compile-time improvement
Resolves #702
1 parent 8d70f19 commit d00108b

File tree

5 files changed

+5
-5
lines changed

5 files changed

+5
-5
lines changed

src/core/include/mp-units/framework/dimension_concepts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ struct dimension_interface;
4242
* Satisfied by all dimension types in the library.
4343
*/
4444
MP_UNITS_EXPORT template<typename T>
45-
concept Dimension = detail::SymbolicConstant<T> && std::derived_from<T, detail::dimension_interface>;
45+
concept Dimension = std::derived_from<T, detail::dimension_interface> && detail::SymbolicConstant<T>;
4646

4747
MP_UNITS_EXPORT template<symbol_text Symbol>
4848
struct base_dimension;

src/core/include/mp-units/framework/quantity_point_concepts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ struct point_origin_interface;
6565
* Satisfied by either quantity points or by all types derived from `absolute_point_origin` class template.
6666
*/
6767
MP_UNITS_EXPORT template<typename T>
68-
concept PointOrigin = detail::SymbolicConstant<T> && std::derived_from<T, detail::point_origin_interface>;
68+
concept PointOrigin = std::derived_from<T, detail::point_origin_interface> && detail::SymbolicConstant<T>;
6969

7070
/**
7171
* @brief A concept matching all quantity point origins for a specified quantity type in the library

src/core/include/mp-units/framework/quantity_spec_concepts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ struct quantity_spec_interface_base;
3636
}
3737

3838
MP_UNITS_EXPORT template<typename T>
39-
concept QuantitySpec = detail::SymbolicConstant<T> && std::derived_from<T, detail::quantity_spec_interface_base>;
39+
concept QuantitySpec = std::derived_from<T, detail::quantity_spec_interface_base> && detail::SymbolicConstant<T>;
4040

4141
template<typename Q>
4242
struct kind_of_;

src/core/include/mp-units/framework/unit_concepts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ struct unit_interface;
4242
* Satisfied by all unit types provided by the library.
4343
*/
4444
MP_UNITS_EXPORT template<typename T>
45-
concept Unit = detail::SymbolicConstant<T> && std::derived_from<T, detail::unit_interface>;
45+
concept Unit = std::derived_from<T, detail::unit_interface> && detail::SymbolicConstant<T>;
4646

4747
MP_UNITS_EXPORT template<symbol_text Symbol, auto...>
4848
struct named_unit;

src/core/include/mp-units/framework/unit_magnitude_concepts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ template<auto... Ms>
5252
struct unit_magnitude;
5353

5454
template<typename T>
55-
constexpr bool is_mag_constant = detail::SymbolicConstant<T> && is_derived_from_specialization_of_v<T, mag_constant>;
55+
constexpr bool is_mag_constant = is_derived_from_specialization_of_v<T, mag_constant> && detail::SymbolicConstant<T>;
5656

5757
} // namespace detail
5858

0 commit comments

Comments
 (0)