diff --git a/include/stdx/span.hpp b/include/stdx/span.hpp index 49d5cfd..87c9f18 100644 --- a/include/stdx/span.hpp +++ b/include/stdx/span.hpp @@ -281,6 +281,10 @@ span(R &&) -> span>>; template constexpr auto ct_capacity_v> = N; + +template +constexpr auto ct_capacity_v> = + detail::ct_capacity_fail>{}; } // namespace v1 } // namespace stdx diff --git a/test/fail/CMakeLists.txt b/test/fail/CMakeLists.txt index 64ccc93..09edb36 100644 --- a/test/fail/CMakeLists.txt +++ b/test/fail/CMakeLists.txt @@ -32,8 +32,9 @@ if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 20) atomic_bool_dec call_by_need ct_format_mismatch - dynamic_span_no_ct_capacity dynamic_container_no_ct_capacity + dynamic_std_span_no_ct_capacity + dynamic_stdx_span_no_ct_capacity tuple_index_out_of_bounds tuple_equality_mismatch tuple_equality_with_element diff --git a/test/fail/dynamic_span_no_ct_capacity.cpp b/test/fail/dynamic_std_span_no_ct_capacity.cpp similarity index 100% rename from test/fail/dynamic_span_no_ct_capacity.cpp rename to test/fail/dynamic_std_span_no_ct_capacity.cpp diff --git a/test/fail/dynamic_stdx_span_no_ct_capacity.cpp b/test/fail/dynamic_stdx_span_no_ct_capacity.cpp new file mode 100644 index 0000000..6c01b7e --- /dev/null +++ b/test/fail/dynamic_stdx_span_no_ct_capacity.cpp @@ -0,0 +1,13 @@ +#include +#include + +#include +#include + +// EXPECT: Type does not support compile-time capacity + +auto main() -> int { + auto a = std::array{}; + auto s = stdx::span{std::begin(a), std::end(a)}; + constexpr auto c = stdx::ct_capacity(s); +}