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) |
Унаследовано от |
|
|
(C++23) |
возвращает константный итератор в начало диапазона. (public member function of std::ranges::view_interface<D>) |
|
(C++23) |
возвращает конечный маркер для константного итератора диапазона. (public member function of std::ranges::view_interface<D>) |
|
(C++20) |
возвращает значение, указывающее, не является ли производный вид пустым. Предоставлено, если ranges::empty применимо к нему. (public member function of std::ranges::view_interface<D>) |
|
(C++20) |
возвращает первый элемент в производном виде. Предоставлено, если он удовлетворяет forward_range. (public member function of std::ranges::view_interface<D>) |
|
(C++20) |
возвращает последний элемент в производном виде. Предоставлено, если он удовлетворяет bidirectional_range и common_range. (public member function of std::ranges::view_interface<D>) |
|
(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());
}См. также
|
(C++20) |
a view containing a single element of a specified value(class template) (customization point object) |
|
(C++20) |
a view that includes all elements of a range(alias template) (range adaptor object) |
|
(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