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 是一个简单的包装器,用于指示被包装对象可能处于 悬空 状态,即它引用的另一个对象可能已结束生命周期。

别名模板 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 ;

返回被包装对象的副本。