Defined in header <ranges> | ||
---|---|---|
struct dangling; | (since C++20) |
dangling
is a placeholder type and an empty class type, used together with the template aliases ranges::safe_iterator_t
and ranges::safe_subrange_t
.
When some constrain algorithms that usually return an iterator or a subrange of a Range
take a particular rvalue Range
argument that does not models exposition-only concept __ForwardingRange
, dangling
will be returned instead to avoid returning potentially dangling results.
constexpr dangling() noexcept = default; | (1) | |
template<class... Args> constexpr dangling(Args&&...) noexcept { } | (2) |
dangling
is trivially default constructible.dangling
can be constructed from arguments of arbitrary number and arbitrary non-void type. The construction does not have any side-effect itself. In other words, after replacing the type (e.g. an iterator type) in a well-formed non-aggregate initialization with dangling
, the resulting initialization is also well-formed.
obtains iterator type or subrange type of a Range which also models __ForwardingRange (alias template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/ranges/dangling