From 58200ce939a591008a8d9406f437252ce2b175cf Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Fri, 15 Nov 2024 00:16:58 +0100 Subject: Cleanup ugly code into concepts --- asl/tests/span_tests.cpp | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) (limited to 'asl/tests') diff --git a/asl/tests/span_tests.cpp b/asl/tests/span_tests.cpp index 18945b2..8b5db76 100644 --- a/asl/tests/span_tests.cpp +++ b/asl/tests/span_tests.cpp @@ -95,14 +95,7 @@ ASL_TEST(conversion) } template -[[maybe_unused]] static auto try_static_subspan(int) - -> decltype(asl::declval().template subspan()); - -template -[[maybe_unused]] static auto try_static_subspan(...) -> asl::empty; - -template -concept invalid_subspan = asl::same_as(0)), asl::empty>; +concept IsValidSubspan = requires (Span s) { s.template subspan(); }; static_assert(asl::same_as, decltype(asl::declval>().subspan<0>())>); @@ -119,7 +112,7 @@ static_assert(asl::same_as, static_assert(asl::same_as, decltype(asl::declval>().subspan<4>())>); -static_assert(invalid_subspan, 5>); +static_assert(!IsValidSubspan, 5>); static_assert(asl::same_as, decltype(asl::declval>().subspan<0>())>); @@ -136,7 +129,7 @@ static_assert(asl::same_as, static_assert(asl::same_as, decltype(asl::declval>().subspan<2, 2>())>); -static_assert(invalid_subspan, 2, 3>); +static_assert(!IsValidSubspan, 2, 3>); ASL_TEST(subspan_static_from_static) { @@ -217,14 +210,7 @@ ASL_TEST(subspan_dynamic) } template -[[maybe_unused]] static auto try_static_first(int) - -> decltype(asl::declval().template first()); - -template -[[maybe_unused]] static auto try_static_first(...) -> asl::empty; - -template -concept invalid_first = asl::same_as(0)), asl::empty>; +concept IsValidFirst = requires (Span s) { s.template first(); }; static_assert(asl::same_as, decltype(asl::declval>().first<0>())>); @@ -253,9 +239,8 @@ static_assert(asl::same_as, static_assert(asl::same_as, decltype(asl::declval>().first<4>())>); -static_assert(invalid_first, 5>); - -static_assert(invalid_first, asl::dynamic_size>); +static_assert(!IsValidFirst, 5>); +static_assert(!IsValidFirst, asl::dynamic_size>); ASL_TEST(first_static_from_static) { @@ -321,14 +306,7 @@ ASL_TEST(first_dynamic) } template -[[maybe_unused]] static auto try_static_last(int) - -> decltype(asl::declval().template last()); - -template -[[maybe_unused]] static auto try_static_last(...) -> asl::empty; - -template -concept invalid_last = asl::same_as(0)), asl::empty>; +concept IsValidLast = requires (Span s) { s.template last(); }; static_assert(asl::same_as, decltype(asl::declval>().last<0>())>); @@ -357,9 +335,8 @@ static_assert(asl::same_as, static_assert(asl::same_as, decltype(asl::declval>().last<4>())>); -static_assert(invalid_last, 5>); - -static_assert(invalid_last, asl::dynamic_size>); +static_assert(!IsValidLast, 5>); +static_assert(!IsValidLast, asl::dynamic_size>); ASL_TEST(last_static_from_static) { @@ -425,10 +402,7 @@ ASL_TEST(last_dynamic) } template -concept HasAsMutableBytes = requires(asl::span s) -{ - asl::as_mutable_bytes(s); -}; +concept HasAsMutableBytes = requires(asl::span s) { asl::as_mutable_bytes(s); }; static_assert(HasAsMutableBytes); static_assert(!HasAsMutableBytes); -- cgit