std::experimental::ranges::dangling, std::experimental::ranges::safe_iterator_t
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/iterator> |
||
| template< CopyConstructible T > class dangling { |
(ranges TS) | |
| template< Range R > using safe_iterator_t = std::conditional_t<std::is_lvalue_reference<R>::value, |
(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; |
||
ラップされたオブジェクトのコピーを返します。