std::ranges:: views:: empty, std::ranges:: empty_view
|
定义于头文件
<ranges>
|
||
|
template
<
class
T
>
requires
std::
is_object_v
<
T
>
|
(1) | (C++20 起) |
|
namespace
views
{
template
<
class
T
>
|
(2) | (C++20 起) |
view
。
empty_view
的变量模板。
目录 |
成员函数
|
begin
[static]
|
返回
nullptr
(公开静态成员函数) |
|
end
[static]
|
返回
nullptr
(公开静态成员函数) |
|
data
[static]
|
返回
nullptr
(公开静态成员函数) |
|
size
[static]
|
返回
0
(公开静态成员函数) |
|
empty
[static]
|
返回
true
(公开静态成员函数) |
继承自 std::ranges::view_interface |
|
|
(C++23)
|
返回指向范围起始的常量迭代器
(
std::ranges::view_interface<D>
的公开成员函数)
|
|
(C++23)
|
返回范围常量迭代器的哨位
(
std::ranges::view_interface<D>
的公开成员函数)
|
|
返回派生视图是否非空(仅在可对其应用
ranges::empty
时提供)
(
std::ranges::view_interface<D>
的公开成员函数)
|
|
返回派生视图中的首元素(在满足
forward_range
时提供)
(
std::ranges::view_interface<D>
的公开成员函数)
|
|
返回派生视图中的末元素(仅在满足
bidirectional_range
和
common_range
时提供)
(
std::ranges::view_interface<D>
的公开成员函数)
|
|
返回派生视图中的第
n
个元素(仅在满足
random_access_range
时提供)
(
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
>
constexpr bool ranges:: enable_borrowed_range < ranges :: empty_view < T >> = true ; |
(C++20 起) | |
对
ranges::
enable_borrowed_range
的此特化使
empty_view
满足
borrowed_range
要求。
注释
尽管
empty_view
从
view_interface
获得了
front
、
back
和
operator
[
]
成员函数,但由于
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)
|
包含
range
所有元素的
view
(别名模板) (范围适配器对象) |
|
(C++20)
|
其他
range
元素的
view
(类模板) |