std::experimental::ranges:: dangling, std::experimental::ranges:: safe_iterator_t
|
Определено в заголовочном файле
<experimental/ranges/iterator>
|
||
|
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
, обёрнутый в
dangling
если диапазон был rvalue-диапазоном (что указывается тем, что
R
не является типом lvalue-ссылки).
Они используются алгоритмами диапазонов, которые принимают rvalue диапазоны и возвращают итераторы в них.
Функции-члены
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
;
|
||
Возвращает копию обернутого объекта.