std::experimental::ranges::dangling, std::experimental::ranges::safe_iterator_t
来自 cppreference.cn
< cpp | experimental | ranges
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) | |
1) 默认构造函数。对被包装的对象进行值初始化。
2) 使用
t
初始化被包装的对象。 请注意,此构造函数定义了从 T
到 dangling<T>
的隐式转换。std::experimental::ranges::dangling::get_unsafe
T get_unsafe() const; |
||
返回被包装对象的副本。