refactor: SymbolicConstant concept refactored

This commit is contained in:
Mateusz Pusz
2024-11-16 11:53:05 +01:00
parent 7b64b4b650
commit daf4b1cc5c

View File

@@ -48,11 +48,8 @@ template<typename T>
concept SymbolicArg = (!std::is_const_v<T>) && (!std::is_reference_v<T>);
template<typename T>
concept SymbolicConstant = SymbolicArg<T> && std::is_empty_v<T> && std::is_trivial_v<T> &&
#if !MP_UNITS_COMP_GCC || MP_UNITS_COMP_GCC > 12
std::semiregular<T> &&
#endif
std::is_final_v<T>;
concept SymbolicConstant = SymbolicArg<T> && std::is_empty_v<T> && std::is_final_v<T> && std::is_trivial_v<T> &&
std::is_trivially_copy_constructible_v<T> && std::is_trivially_move_constructible_v<T>;
/**
* @brief Type list type used by the expression template framework