std::experimental::ranges:: dangling, std::experimental::ranges:: safe_iterator_t
|
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
是一个简单的包装器,用于指示被包装对象可能处于
悬空
状态,即它引用的另一个对象可能已结束生命周期。
别名模板
safe_iterator_t
返回
R
的迭代器类型:若该范围是右值范围(通过
R
不是左值引用类型来判定),则会将迭代器类型包装在
dangling
中。
它们被接受右值范围并返回指向这些范围的迭代器的范围算法所使用。
成员函数
std::experimental::ranges::dangling:: dangling
|
dangling
(
)
requires DefaultConstructible
<
T
>
(
)
;
|
(1) | |
|
dangling
(
T t
)
;
|
(2) | |
t
初始化被包装的对象。注意该构造函数定义了从
T
到
dangling<T>
的隐式转换。
std::experimental::ranges::dangling:: get_unsafe
|
T get_unsafe
(
)
const
;
|
||
返回被包装对象的副本。