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

< cpp‎ | experimental‎ | ranges

定义于头文件 `<experimental/ranges/iterator>` |  |
template <ranges::CopyConstructible T> class dangling { public: dangling() requires ranges::DefaultConstructible<T>(); dangling(T t); T get_unsafe() const; }; |  | (范围 TS)
template<ranges::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>>; |  | (范围 TS)

类模板 `dangling` 是围绕对象的简单包装器，指示被包装对象可以悬垂，即它指代生存期可以已经结束的另一对象。

若范围为右值范围，则别名模版 `safe_iterator_t` 返回包装于 `dangling` 中的 `R` 类型迭代器（以非左值引用类型的 `R` 指示）。

接受左值范围并返回指向其中的迭代器范围算法使用它们。

### 成员函数

## std::experimental::ranges::dangling::dangling

dangling() requires ranges::DefaultConstructible<T>(); | (1) |
dangling(T t); | (2) |

1) 默认构造函数。值初始化被包装对象。
2) 以 `t` 初始化被包装对象。注意此构造函数定义从 `T` 到 `dangling<T>` 的隐式转换。

## std::experimental::ranges::dangling::get_unsafe

T get_unsafe() const; |  |

返回被包装对象的副本。