Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/GSL.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJordan Maples [MSFT] <49793787+JordanMaples@users.noreply.github.com>2020-02-15 03:25:25 +0300
committerJordan Maples [MSFT] <49793787+JordanMaples@users.noreply.github.com>2020-02-15 03:25:25 +0300
commit6b01a0488b1157a2c49805b85becd09e1fe84f57 (patch)
tree04d54cea2072b7b71feff947045b945127322590 /tests
parentb6b1e9c3cf1200ad5d912d4bd63364286863cbfc (diff)
Update span_compatibility_tests.cpp
some fixes.
Diffstat (limited to 'tests')
-rw-r--r--tests/span_compatibility_tests.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/tests/span_compatibility_tests.cpp b/tests/span_compatibility_tests.cpp
index d4cde0c..57a85e7 100644
--- a/tests/span_compatibility_tests.cpp
+++ b/tests/span_compatibility_tests.cpp
@@ -41,13 +41,6 @@ static_assert(std::is_convertible<Derived*, Base*>::value, "std::is_convertible<
static_assert(!std::is_convertible<Derived (*)[], Base (*)[]>::value,
"!std::is_convertible<Derived(*)[], Base(*)[]>");
-template <typename U, typename = void>
-static constexpr bool AsWritableBytesCompilesFor = false;
-
-template <typename U>
-static constexpr bool AsWritableBytesCompilesFor<U, void_t<decltype(as_writable_bytes(declval<U>()))>> =
- true;
-
TEST(span_compatibility_tests, assertion_tests)
{
int arr[3]{10, 20, 30};
@@ -501,15 +494,6 @@ TEST(span_compatibility_tests, 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<gsl::span<int>>,
- "AsWritableBytesCompilesFor<gsl::span<int>>");
- static_assert(AsWritableBytesCompilesFor<gsl::span<int, 9>>,
- "AsWritableBytesCompilesFor<gsl::span<int, 9>>");
- static_assert(!AsWritableBytesCompilesFor<gsl::span<const int>>,
- "!AsWritableBytesCompilesFor<gsl::span<const int>>");
- static_assert(!AsWritableBytesCompilesFor<gsl::span<const int, 9>>,
- "!AsWritableBytesCompilesFor<gsl::span<const int, 9>>");
-
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<std::array<int, 3>&, gsl::span<const int>>::va
static_assert(std::is_convertible<const std::array<int, 3>&, gsl::span<const int>>::value,
"std::is_convertible<const std::array<int, 3>&, gsl::span<const int>>");
+
+
+#if __cplusplus >= 201703l
+template <typename U, typename = void>
+inline constexpr bool AsWritableBytesCompilesFor = false;
+
+template <typename U>
+inline constexpr bool AsWritableBytesCompilesFor<U, void_t<decltype(as_writable_bytes(declval<U>()))>> =
+ true;
+
+static_assert(AsWritableBytesCompilesFor<gsl::span<int>>,
+ "AsWritableBytesCompilesFor<gsl::span<int>>");
+static_assert(AsWritableBytesCompilesFor<gsl::span<int, 9>>,
+ "AsWritableBytesCompilesFor<gsl::span<int, 9>>");
+static_assert(!AsWritableBytesCompilesFor<gsl::span<const int>>,
+ "!AsWritableBytesCompilesFor<gsl::span<const int>>");
+static_assert(!AsWritableBytesCompilesFor<gsl::span<const int, 9>>,
+ "!AsWritableBytesCompilesFor<gsl::span<const int, 9>>");
+#endif // __cplusplus >= 201703l