名前空間
変種
操作

std::ranges::views::empty, std::ranges::empty_view

From cppreference.com
< cpp‎ | ranges
 
 
Rangesライブラリ
Rangeアダプタ
 
ヘッダ <ranges> で定義
template<class T>

    requires std::is_object_v<T>

class empty_view : public ranges::view_interface<empty_view<T>>
(1) (C++20以降)
namespace views {

    template<class T>
    constexpr empty_view<T> empty{};

}
(2) (C++20以降)
1) 要素を持たない特定の型のviewを生成するレンジファクトリ。
2) 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 メンバ関数) [編集]
(C++23)
範囲の定数イテレータの番兵を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが空でないかどうかを返す。ranges::empty が適用可能な場合にのみ提供される
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが forward_range を満たす場合に、派生ビューの最初の要素を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが bidirectional_rangecommon_range の両方を満たす場合にのみ、派生ビューの最後の要素を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが random_access_range を満たす場合にのみ、派生ビューの n番目の要素を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]

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_viewborrowed_rangeを満たします。

[編集] 注意

empty_viewview_interfaceからfrontbackoperator[]メンバ関数を取得しますが、empty_viewは常に空であるため、これらの関数への呼び出しは常に未定義の動作につながります。

継承されたoperator bool変換関数は常にfalseを返します。

[編集]

#include <ranges>
 
int main()
{
    namespace ranges = std::ranges;
 
    ranges::empty_view<long> e;
    static_assert(ranges::empty(e)); // uses 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
(クラステンプレート) (カスタマイゼーションポイントオブジェクト)[編集]
rangeのすべての要素を含む view
(エイリアステンプレート) (rangeアダプタオブジェクト)[編集]
他の何らかのrangeの要素の view
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)