Merge pull request #3 from JordanMaples/dev/jomaples/lwg3255

adding additional filtering
This commit is contained in:
Jordan Maples [MSFT] 2020-04-08 14:43:15 -07:00 committed by GitHub
commit c5dd0e6d40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -42,6 +42,7 @@ static_assert(std::is_convertible<Derived*, Base*>::value, "std::is_convertible<
static_assert(!std::is_convertible<Derived (*)[], Base (*)[]>::value,
"!std::is_convertible<Derived(*)[], Base(*)[]>");
#if (defined(_MSC_VER)) || (defined(__GNUC__) && __GNUC__ > 7) || (defined(__clang__) && __clang_major__ > 6)
template <class = void>
void ArrayConvertibilityCheck()
{
@ -57,15 +58,19 @@ void ArrayConvertibilityCheck()
EXPECT_TRUE(sp_const_nullptr_2.data() == stl_nullptr.data());
EXPECT_TRUE(sp_const_nullptr_2.size() == 3);
static_assert(std::is_same<decltype(span{stl_nullptr}), span<int*, 3>>::value,
"std::is_same< decltype(span{stl_nullptr}), span<int*, 3>>::value");
static_assert(
std::is_same<decltype(span{std::as_const(stl_nullptr)}), span<int* const, 3>>::value,
"std::is_same< decltype(span{std::as_const(stl_nullptr)}), span<int* const, "
"3>>::value");
static_assert(std::is_same<decltype(span{stl_nullptr}), span<int*, 3>>::value,
"std::is_same< decltype(span{stl_nullptr}), span<int*, 3>>::value");
static_assert(
std::is_same<decltype(span{std::as_const(stl_nullptr)}), span<int* const, 3>>::value,
"std::is_same< decltype(span{std::as_const(stl_nullptr)}), span<int* const, "
"3>>::value");
}
#endif
}
#else
template <class = void>
void ArrayConvertibilityCheck(){}
#endif
TEST(span_compatibility_tests, assertion_tests)
{