Implement LWG-4035 single_view should provide empty (#4525)

Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
This commit is contained in:
grcm10 2024-03-29 02:24:34 +09:00 коммит произвёл GitHub
Родитель e0a75b3537
Коммит 53f95ba92e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
2 изменённых файлов: 11 добавлений и 0 удалений

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -52,6 +52,13 @@ constexpr bool test_one_type(T value, Args&&... args) {
same_as<R> auto r0 = ranges::single_view{value};
const R& cr0 = r0;
// validate member empty
static_assert(same_as<decltype(R::empty()), bool>);
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<decltype(R::size()), size_t>);
static_assert(R::size() == 1);