名前空間
変種
操作

std::experimental::ranges::dangling, std::experimental::ranges::safe_iterator_t

From cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
イテレータライブラリ
イテレータのコンセプト
間接呼び出し可能コンセプト
                                                  
                                                  
                                                  
共通アルゴリズム要件
                                                  
Concept utilities
Iterator utilities and operations
Iterator traits
イテレータアダプタ
danglingborrowed_iterator_t
ストリームイテレータ
 
template< CopyConstructible T >

class dangling {
public:
    dangling() requires DefaultConstructible<T>();
    dangling(T t);
    T get_unsafe() const;

};
(ranges TS)
template< Range R >

using safe_iterator_t = std::conditional_t<std::is_lvalue_reference<R>::value,
                                           ranges::iterator_t<R>,

                                           ranges::dangling<ranges::iterator_t<R>>;
(ranges TS)

クラステンプレートdanglingは、ラップされたオブジェクトがdangling(つまり、寿命が終了している可能性のある別のオブジェクトを参照している)であることを示すための、オブジェクトの単純なラッパーです。

エイリアステンプレートsafe_iterator_tは、Rのイテレータ型を返します。範囲がrvalue範囲であった場合(Rがlvalue参照型でないことで示される)、danglingでラップされます。

これらは、rvalue範囲を受け入れてそこへのイテレータを返す範囲アルゴリズムによって使用されます。

[編集] メンバ関数

std::experimental::ranges::dangling::dangling

dangling() requires DefaultConstructible<T>();
(1)
dangling(T t);
(2)
1) デフォルトコンストラクタ。ラップされたオブジェクトを値初期化します。
2) ラップされたオブジェクトをtで初期化します。このコンストラクタはTからdangling<T>への暗黙的な変換を定義することに注意してください。

std::experimental::ranges::dangling::get_unsafe

T get_unsafe() const;

ラップされたオブジェクトのコピーを返します。

English 日本語 中文(简体) 中文(繁體)