diff --git a/stl/inc/ranges b/stl/inc/ranges index 30d22d9c4f..d2949c677a 100644 --- a/stl/inc/ranges +++ b/stl/inc/ranges @@ -1031,6 +1031,10 @@ namespace ranges { return data() + 1; } + _NODISCARD static constexpr bool empty() noexcept { + return false; + } + _NODISCARD static constexpr size_t size() noexcept { return 1; } diff --git a/tests/std/tests/P0896R4_views_single/test.cpp b/tests/std/tests/P0896R4_views_single/test.cpp index 8671a90105..ccf315b8d2 100644 --- a/tests/std/tests/P0896R4_views_single/test.cpp +++ b/tests/std/tests/P0896R4_views_single/test.cpp @@ -52,6 +52,13 @@ constexpr bool test_one_type(T value, Args&&... args) { same_as auto r0 = ranges::single_view{value}; const R& cr0 = r0; + // validate member empty + static_assert(same_as); + static_assert(R::empty() == false); + static_assert(noexcept(R::empty())); + static_assert(noexcept(ranges::empty(r0))); + static_assert(noexcept(ranges::empty(cr0))); + // validate member size static_assert(same_as); static_assert(R::size() == 1);