Namespaces
Variants

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

From cppreference.net
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 のイテレータ型を返します。範囲が右辺値範囲であった場合( R が左辺値参照型でないことによって示される)、 dangling でラップされます。

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

メンバー関数

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 ;

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