diff --git a/src/Magnum/Math/FunctionsBatch.h b/src/Magnum/Math/FunctionsBatch.h index 03546dd90..44ea59ce4 100644 --- a/src/Magnum/Math/FunctionsBatch.h +++ b/src/Magnum/Math/FunctionsBatch.h @@ -102,12 +102,12 @@ template inline auto isNan(Corrade::Containers::StridedArrayView1D inline auto isNan(std::initializer_list list) -> decltype(isInf(std::declval())) { +template inline auto isNan(std::initializer_list list) -> decltype(isNan(std::declval())) { return isNan(Corrade::Containers::arrayView(list.begin(), list.size())); } /** @overload */ -template inline bool isNan(const T(&array)[size]) { +template inline auto isNan(const T(&array)[size]) -> decltype(isNan(std::declval())) { return isNan(Corrade::Containers::arrayView(array)); } diff --git a/src/Magnum/Math/Test/FunctionsBatchTest.cpp b/src/Magnum/Math/Test/FunctionsBatchTest.cpp index cba8073e4..f97067c94 100644 --- a/src/Magnum/Math/Test/FunctionsBatchTest.cpp +++ b/src/Magnum/Math/Test/FunctionsBatchTest.cpp @@ -82,6 +82,9 @@ void FunctionsBatchTest::isInf() { const Float b[]{5.0f, -2.0f, -1.0}; CORRADE_VERIFY(!Math::isInf(b)); + + Vector2 c[]{{5.0f, -3.0f}, {-2.0f, 14.0f}, {Constants::inf(), -5.0f}}; + CORRADE_COMPARE(Math::isInf(c), BoolVector<2>{1}); } void FunctionsBatchTest::isNan() { @@ -103,6 +106,9 @@ void FunctionsBatchTest::isNan() { const Float b[]{5.0f, -2.0f, -1.0}; CORRADE_VERIFY(!Math::isNan(b)); + + Vector2 c[]{{5.0f, -3.0f}, {14.0f, Constants::nan()}, {-2.0f, -5.0f}}; + CORRADE_COMPARE(Math::isNan(c), BoolVector<2>{2}); } void FunctionsBatchTest::min() {