std::experimental:: any_cast
From cppreference.net
<
cpp
|
experimental
|
any
|
template
<
class
ValueType
>
ValueType any_cast ( const any & operand ) ; |
(1) | (библиотека fundamentals TS) |
|
template
<
class
ValueType
>
ValueType any_cast ( any & operand ) ; |
(2) | (библиотека fundamentals TS) |
|
template
<
class
ValueType
>
ValueType any_cast ( any && operand ) ; |
(3) | (библиотека fundamentals TS) |
|
template
<
class
ValueType
>
const ValueType * any_cast ( const any * operand ) noexcept ; |
(4) | (библиотека fundamentals TS) |
|
template
<
class
ValueType
>
ValueType * any_cast ( any * operand ) noexcept ; |
(5) | (библиотека fundamentals TS) |
Осуществляет типобезопасный доступ к содержащемуся объекту.
Для
(1-3)
программа является некорректной, если
ValueType
не является ссылкой и
std::
is_copy_constructible
<
ValueType
>
::
value
равно
false
.
Параметры
| операнд | - |
целевой
any
объект
|
Возвращаемое значение
1)
Возвращает
*
any_cast
<
std::
add_const_t
<
std::
remove_reference_t
<
ValueType
>>>
(
&
operand
)
.
2,3)
Возвращает
*
any_cast
<
std::
remove_reference_t
<
ValueType
>>
(
&
operand
)
.
4,5)
Если
operand
не является нулевым указателем, и
typeid
запрашиваемого
ValueType
совпадает с содержимым
operand
, возвращается указатель на значение, содержащееся в
operand
, иначе возвращается нулевой указатель.
Исключения
1-3)
Выбрасывает
bad_any_cast
если
typeid
запрашиваемого
ValueType
не совпадает с типом содержимого
operand
.