std::ranges:: views:: empty, std::ranges:: empty_view
|
Определено в заголовочном файле
<ranges>
|
||
|
template
<
class
T
>
requires
std::
is_object_v
<
T
>
|
(1) | (since C++20) |
|
namespace
views
{
template
<
class
T
>
|
(2) | (since C++20) |
view
без элементов определённого типа.
empty_view
.
Содержание |
Функции-члены
|
begin
[static]
|
возвращает
nullptr
(public static member function) |
|
end
[static]
|
возвращает
nullptr
(public static member function) |
|
data
[static]
|
возвращает
nullptr
(public static member function) |
|
size
[static]
|
возвращает
0
(public static member function) |
|
empty
[static]
|
возвращает
true
(public static member function) |
Наследуется от std::ranges::view_interface |
|
|
(C++23)
|
возвращает константный итератор на начало диапазона
(public member function of
std::ranges::view_interface<D>
)
|
|
(C++23)
|
возвращает страж для константного итератора диапазона
(public member function of
std::ranges::view_interface<D>
)
|
|
возвращает, является ли производное представление непустым, предоставляется только если
ranges::empty
применимо к нему
(public member function of
std::ranges::view_interface<D>
)
|
|
возвращает первый элемент в производном представлении, предоставляется если оно удовлетворяет
forward_range
(public member function of
std::ranges::view_interface<D>
)
|
|
возвращает последний элемент в производном представлении, предоставляется только если оно удовлетворяет
bidirectional_range
и
common_range
(public member function of
std::ranges::view_interface<D>
)
|
|
возвращает
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
;
}
|
(начиная с C++20) | |
empty_view
не ссылается ни на какие элементы.
std::ranges::empty_view:: end
|
static
constexpr
T
*
end
(
)
noexcept
{
return
nullptr
;
}
|
(начиная с C++20) | |
empty_view
не ссылается ни на какие элементы.
std::ranges::empty_view:: data
|
static
constexpr
T
*
data
(
)
noexcept
{
return
nullptr
;
}
|
(начиная с C++20) | |
empty_view
не ссылается ни на какие элементы.
std::ranges::empty_view:: size
|
static
constexpr
std::
size_t
size
(
)
noexcept
{
return
0
;
}
|
(начиная с C++20) | |
empty_view
всегда пуст.
std::ranges::empty_view:: empty
|
static
constexpr
bool
empty
(
)
noexcept
{
return
true
;
}
|
(since C++20) | |
empty_view
всегда пуст.
Вспомогательные шаблоны
|
template
<
class
T
>
constexpr bool ranges:: enable_borrowed_range < ranges :: empty_view < T >> = true ; |
(начиная с C++20) | |
Эта специализация
ranges::
enable_borrowed_range
позволяет
empty_view
удовлетворять требованиям
borrowed_range
.
Примечания
Хотя
empty_view
получает функции-члены
front
,
back
и
operator
[
]
от
view_interface
, вызовы этих функций всегда приводят к неопределённому поведению, поскольку
empty_view
всегда является пустым.
Унаследованная operator bool функция преобразования всегда возвращает false .
Пример
#include <ranges> int main() { namespace ranges = std::ranges; ranges::empty_view<long> e; static_assert(ranges::empty(e)); // использует operator bool static_assert(0 == e.size()); static_assert(nullptr == e.data()); static_assert(nullptr == e.begin()); static_assert(nullptr == e.end()); static_assert(nullptr == e.cbegin()); static_assert(nullptr == e.cend()); }
Смотрите также
|
(C++17)
|
обёртка, которая может содержать или не содержать объект
(шаблон класса) |
view
содержащий единственный элемент указанного значения
(шаблон класса) (объект точки настройки) |
|
|
(C++20)
|
view
включающий все элементы
range
(псевдоним шаблона) (объект адаптера диапазона) |
|
(C++20)
|
view
элементов некоторого другого
range
(шаблон класса) |