diff --git a/tests/span_compatibility_tests.cpp b/tests/span_compatibility_tests.cpp index 62793e7..57a85e7 100644 --- a/tests/span_compatibility_tests.cpp +++ b/tests/span_compatibility_tests.cpp @@ -41,29 +41,22 @@ static_assert(std::is_convertible::value, "std::is_convertible< static_assert(!std::is_convertible::value, "!std::is_convertible"); -template -static constexpr bool AsWritableBytesCompilesFor = false; - -template -static constexpr bool AsWritableBytesCompilesFor()))>> = - true; - -TEST(span_test, std_span_compatibilty_assertion_tests) +TEST(span_compatibility_tests, assertion_tests) { int arr[3]{10, 20, 30}; std::array stl{{100, 200, 300}}; { gsl::span sp_dyn; - assert(sp_dyn.data() == nullptr); - assert(sp_dyn.size() == 0); - assert(sp_dyn.empty()); + EXPECT_TRUE(sp_dyn.data() == nullptr); + EXPECT_TRUE(sp_dyn.size() == 0); + EXPECT_TRUE(sp_dyn.empty()); } { gsl::span sp_zero; - assert(sp_zero.data() == nullptr); - assert(sp_zero.size() == 0); - assert(sp_zero.empty()); + EXPECT_TRUE(sp_zero.data() == nullptr); + EXPECT_TRUE(sp_zero.size() == 0); + EXPECT_TRUE(sp_zero.empty()); gsl::span sp_dyn_a(arr, 3); gsl::span sp_dyn_b(begin(arr), 3); @@ -501,15 +494,6 @@ TEST(span_test, std_span_compatibilty_assertion_tests) static_assert(noexcept(as_writable_bytes(sp_dyn)), "noexcept(as_writable_bytes(sp_dyn))"); static_assert(noexcept(as_writable_bytes(sp_nine)), "noexcept(as_writable_bytes(sp_nine))"); - static_assert(AsWritableBytesCompilesFor>, - "AsWritableBytesCompilesFor>"); - static_assert(AsWritableBytesCompilesFor>, - "AsWritableBytesCompilesFor>"); - static_assert(!AsWritableBytesCompilesFor>, - "!AsWritableBytesCompilesFor>"); - static_assert(!AsWritableBytesCompilesFor>, - "!AsWritableBytesCompilesFor>"); - auto sp_1 = as_bytes(sp_dyn); auto sp_2 = as_bytes(sp_nine); auto sp_3 = as_bytes(sp_const_dyn); @@ -1064,3 +1048,22 @@ static_assert(std::is_convertible&, gsl::span>::va static_assert(std::is_convertible&, gsl::span>::value, "std::is_convertible&, gsl::span>"); + + +#if __cplusplus >= 201703l +template +inline constexpr bool AsWritableBytesCompilesFor = false; + +template +inline constexpr bool AsWritableBytesCompilesFor()))>> = + true; + +static_assert(AsWritableBytesCompilesFor>, + "AsWritableBytesCompilesFor>"); +static_assert(AsWritableBytesCompilesFor>, + "AsWritableBytesCompilesFor>"); +static_assert(!AsWritableBytesCompilesFor>, + "!AsWritableBytesCompilesFor>"); +static_assert(!AsWritableBytesCompilesFor>, + "!AsWritableBytesCompilesFor>"); +#endif // __cplusplus >= 201703l