Namespaces
Variants

std::experimental:: any_cast

From cppreference.net
template < class ValueType >
ValueType any_cast ( const any & operand ) ;
(1) (spécifications techniques des bibliothèques fondamentales)
template < class ValueType >
ValueType any_cast ( any & operand ) ;
(2) (spécifications techniques des bibliothèques fondamentales)
template < class ValueType >
ValueType any_cast ( any && operand ) ;
(3) (spécifications techniques des bibliothèques fondamentales)
template < class ValueType >
const ValueType * any_cast ( const any * operand ) noexcept ;
(4) (spécifications techniques des bibliothèques fondamentales)
template < class ValueType >
ValueType * any_cast ( any * operand ) noexcept ;
(5) (spécifications techniques des bibliothèques fondamentales)

Effectue un accès sécurisé au type de l'objet contenu.

Pour (1-3) , le programme est mal formé si ValueType n'est pas une référence et std:: is_copy_constructible < ValueType > :: value est false .

Paramètres

opérande - cible any objet

Valeur de retour

1) Retourne * any_cast < std:: add_const_t < std:: remove_reference_t < ValueType >>> ( & operand ) .
2,3) Retourne * any_cast < std:: remove_reference_t < ValueType >> ( & operand ) .
4,5) Si operand n'est pas un pointeur nul, et que le typeid du ValueType demandé correspond à celui du contenu de operand , un pointeur vers la valeur contenue dans operand , sinon un pointeur nul.

Exceptions

1-3) Lance bad_any_cast si le typeid du ValueType demandé ne correspond pas à celui du contenu de operand .