Spec-Zone.ru › C++

std::ranges::views::empty, std::ranges::empty_view

Defined in header <ranges>
template<class T>
    requires std::is_object_v<T>
class empty_view : public ranges::view_interface<empty_view<T>>
(1) (since C++20)
namespace views {
    template<class T> inline constexpr empty_view<T> empty{};
}
(2) (since C++20)
1) A range factory that produces a view of no elements of a particular type.
2) Variable template for empty_view.

Member functions

begin
[static] (C++20)
returns nullptr
(public static member function)
end
[static] (C++20)
returns nullptr
(public static member function)
data
[static] (C++20)
returns nullptr
(public static member function)
size
[static] (C++20)
returns ​0​ (ноль)
(public static member function)
empty
[static] (C++20)
returns true
(public static member function)
Унаследовано от std::ranges::view_interface
cbegin
(C++23)
возвращает константный итератор в начало диапазона.
(public member function of std::ranges::view_interface<D>)
cend
(C++23)
возвращает конечный маркер для константного итератора диапазона.
(public member function of std::ranges::view_interface<D>)
operator bool
(C++20)
возвращает значение, указывающее, не является ли производный вид пустым. Предоставлено, если ranges::empty применимо к нему.
(public member function of std::ranges::view_interface<D>)
front
(C++20)
возвращает первый элемент в производном виде. Предоставлено, если он удовлетворяет forward_range.
(public member function of std::ranges::view_interface<D>)
back
(C++20)
возвращает последний элемент в производном виде. Предоставлено, если он удовлетворяет bidirectional_range и common_range.
(public member function of std::ranges::view_interface<D>)
operator[]
(C++20)
возвращает n-й элемент в производном виде. Предоставлено, если он удовлетворяет random_access_range.
(public member function of std::ranges::view_interface<D>)

std::ranges::empty_view::begin

static constexpr T* begin() noexcept { return nullptr; }
(since C++20)

empty_view не ссылается ни на один элемент.

std::ranges::empty_view::end

static constexpr T* end() noexcept { return nullptr; }
(since C++20)

empty_view не ссылается ни на один элемент.

std::ranges::empty_view::data

static constexpr T* data() noexcept { return nullptr; }
(since C++20)

empty_view не ссылается ни на один элемент.

std::ranges::empty_view::size

static constexpr std::size_t size() noexcept { return 0; }
(since C++20)

empty_view всегда пуст.

std::ranges::empty_view::empty

static constexpr bool empty() noexcept { return true; }
(since C++20)

empty_view всегда пуст.

Вспомогательные шаблоны

template<class T>
inline constexpr bool enable_borrowed_range<ranges::empty_view<T>> = true;
(since C++20)

Эта специализация std::ranges::enable_borrowed_range делает empty_view удовлетворяющим borrowed_range.

Примечания

Хотя empty_view получает front, back, и operator[] функции-члены от view_interface, вызовы к ним всегда приводят к неопределённому поведению, поскольку empty_view всегда пуст.

Унаследованная operator bool функция преобразования всегда возвращает false.

Пример

#include <ranges>
 
int main()
{
    std::ranges::empty_view<long> e;
    static_assert(std::ranges::empty(e));
    static_assert(0 == e.size());
    static_assert(nullptr == e.data());
    static_assert(nullptr == e.begin());
    static_assert(nullptr == e.end());
}

См. также

ranges::single_viewviews::single
(C++20)
a view containing a single element of a specified value
(class template) (customization point object)
views::all_tviews::all
(C++20)
a view that includes all elements of a range
(alias template) (range adaptor object)
ranges::ref_view
(C++20)
a view of the elements of some other range
(class template)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/empty_view

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API