std::ranges::views::empty, std::ranges::empty_view
出自cppreference.com
| |
(1) | (C++20 起) |
| |
(2) | (C++20 起) |
1) 產生無特定類型元素的 view 的範圍工廠。
2)
empty_view 的變量模板。成員函數
begin [靜態] |
返回 nullptr (公開靜態成員函數) |
end [靜態] |
返回 nullptr (公開靜態成員函數) |
data [靜態] |
返回 nullptr (公開靜態成員函數) |
size [靜態] |
返回 0 (公開靜態成員函數) |
empty [靜態] |
返回 true (公開靜態成員函數) |
繼承自 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
| |
(C++20 起) | |
empty_view 不引用任何元素。
std::ranges::empty_view::end
| |
(C++20 起) | |
empty_view 不引用任何元素。
std::ranges::empty_view::data
| |
(C++20 起) | |
empty_view 不引用任何元素。
std::ranges::empty_view::size
| |
(C++20 起) | |
empty_view 始終為空。
std::ranges::empty_view::empty
| |
(C++20 起) | |
empty_view 始終為空。
輔助模板
| |
(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 (類模板) |