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
を返す
(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)
|
範囲の先頭を指す定数イテレータを返す
(
std::ranges::view_interface<D>
のpublic member function)
|
|
(C++23)
|
範囲の定数イテレータの番兵を返す
(
std::ranges::view_interface<D>
のpublic member function)
|
|
派生ビューが空でないかどうかを返す(
ranges::empty
が適用可能な場合のみ提供)
(
std::ranges::view_interface<D>
のpublic member function)
|
|
派生ビューの最初の要素を返す(
forward_range
を満たす場合に提供)
(
std::ranges::view_interface<D>
のpublic member function)
|
|
派生ビューの最後の要素を返す(
bidirectional_range
かつ
common_range
を満たす場合のみ提供)
(
std::ranges::view_interface<D>
のpublic member function)
|
|
派生ビューの
n
番目の要素を返す(
random_access_range
を満たす場合のみ提供)
(
std::ranges::view_interface<D>
のpublic member function)
|
|
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
;
}
|
(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
(クラステンプレート) |