Namespaces
Variants

std::experimental:: any_cast

From cppreference.net
template < class ValueType >
ValueType any_cast ( const any & operand ) ;
(1) (biblioteca fundamentals TS)
template < class ValueType >
ValueType any_cast ( any & operand ) ;
(2) (biblioteca fundamentals TS)
template < class ValueType >
ValueType any_cast ( any && operand ) ;
(3) (biblioteca fundamentals TS)
template < class ValueType >
const ValueType * any_cast ( const any * operand ) noexcept ;
(4) (biblioteca fundamentals TS)
template < class ValueType >
ValueType * any_cast ( any * operand ) noexcept ;
(5) (biblioteca fundamentals TS)

Realiza acceso seguro de tipos al objeto contenido.

Para (1-3) , el programa está mal formado si ValueType no es una referencia y std:: is_copy_constructible < ValueType > :: value es false .

Parámetros

operando - objetivo any objeto

Valor de retorno

1) Devuelve * any_cast < std:: add_const_t < std:: remove_reference_t < ValueType >>> ( & operand ) .
2,3) Devuelve * any_cast < std:: remove_reference_t < ValueType >> ( & operand ) .
4,5) Si operand no es un puntero nulo, y el typeid del ValueType solicitado coincide con el del contenido de operand , un puntero al valor contenido en operand , de lo contrario un puntero nulo.

Excepciones

1-3) Lanza bad_any_cast si el typeid del ValueType solicitado no coincide con el del contenido de operand .