diff --git a/src/mesh/ItemValueUtils.hpp b/src/mesh/ItemValueUtils.hpp index 9c36db12811d63b1942911afb12d514ebbdd213d..ef99f59e44f9f71a01267ca0c424220241573f60 100644 --- a/src/mesh/ItemValueUtils.hpp +++ b/src/mesh/ItemValueUtils.hpp @@ -20,7 +20,8 @@ min(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value) using data_type = std::remove_const_t<typename ItemValueType::data_type>; using index_type = typename ItemValueType::index_type; - static_assert(not std::is_same_v<data_type, bool>, "min cannot be called on boolean arrays"); + static_assert(std::is_arithmetic_v<data_type>, "min cannot be called on non-arithmetic data"); + static_assert(not std::is_same_v<data_type, bool>, "min cannot be called on boolean data"); class ItemValueMin { @@ -113,7 +114,9 @@ max(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value) using data_type = std::remove_const_t<typename ItemValueType::data_type>; using index_type = typename ItemValueType::index_type; - static_assert(not std::is_same_v<data_type, bool>, "min cannot be called on boolean arrays"); + static_assert(std::is_arithmetic_v<data_type>, "max cannot be called on non arithmetic data"); + static_assert(not std::is_same_v<data_type, bool>, "max cannot be called on boolean data"); + class ItemValueMax { private: @@ -205,7 +208,7 @@ sum(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value) using data_type = std::remove_const_t<typename ItemValueType::data_type>; using index_type = typename ItemValueType::index_type; - static_assert(not std::is_same_v<data_type, bool>, "sum cannot be called on boolean arrays"); + static_assert(not std::is_same_v<data_type, bool>, "sum cannot be called on boolean data"); class ItemValueSum { diff --git a/src/utils/Array.hpp b/src/utils/Array.hpp index f78f543080edcfa614e6ad549a73349ffb66da74..ca8a6ea6b349b2918c54ccd8de354bff8e999a6f 100644 --- a/src/utils/Array.hpp +++ b/src/utils/Array.hpp @@ -189,6 +189,9 @@ min(const Array<DataType>& array) using data_type = std::remove_const_t<typename ArrayType::data_type>; using index_type = typename ArrayType::index_type; + static_assert(std::is_arithmetic_v<data_type>, "min cannot be called on non-arithmetic data"); + static_assert(not std::is_same_v<data_type, bool>, "min cannot be called on boolean data"); + class ArrayMin { private: @@ -249,6 +252,9 @@ max(const Array<DataType>& array) using data_type = std::remove_const_t<typename ArrayType::data_type>; using index_type = typename ArrayType::index_type; + static_assert(std::is_arithmetic_v<data_type>, "max cannot be called on non-arithmetic data"); + static_assert(not std::is_same_v<data_type, bool>, "max cannot be called on boolean data"); + class ArrayMax { private: @@ -309,6 +315,8 @@ sum(const Array<DataType>& array) using data_type = std::remove_const_t<DataType>; using index_type = typename ArrayType::index_type; + static_assert(not std::is_same_v<data_type, bool>, "sum cannot be called on boolean data"); + class ArraySum { private: