Namespaces
Variants

std::bad_any_cast

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison tridirectionnelle
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
 
Défini dans l'en-tête <any>
class bad_any_cast : public std::bad_cast;
(depuis C++17)

Définit un type d'objet à lancer par les formes retournant une valeur de std::any_cast en cas d'échec.

Fonctions membres

(constructeur)
construit un nouvel objet bad_any_cast
(fonction membre publique)
operator=
remplace l'objet bad_any_cast
(fonction membre publique)
what
retourne la chaîne explicative
(fonction membre publique)

std::bad_any_cast:: bad_any_cast

bad_any_cast ( ) noexcept ;
(1) (depuis C++17)
bad_any_cast ( const bad_any_cast & other ) noexcept ;
(2) (depuis C++17)

Construit un nouvel objet bad_any_cast avec une chaîne d'octets terminée par un caractère nul définie par l'implémentation, accessible via what() .

1) Constructeur par défaut.
2) Constructeur de copie. Si * this et other ont tous deux le type dynamique std::bad_any_cast , alors std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Paramètres

other - un autre objet exception à copier

std::bad_any_cast:: operator=

bad_any_cast & operator = ( const bad_any_cast & other ) noexcept ;
(depuis C++17)

Assigne le contenu avec celui de other . Si * this et other ont tous deux le type dynamique std::bad_any_cast alors std:: strcmp ( what ( ) , other. what ( ) ) == 0 après l'assignation.

Paramètres

other - autre objet d'exception à assigner

Valeur de retour

* this

std::bad_any_cast:: what

virtual const char * what ( ) const noexcept ;
(depuis C++17)

Retourne la chaîne explicative.

Valeur de retour

Pointeur vers une chaîne implémentée-définie terminée par un caractère nul contenant des informations explicatives. La chaîne est adaptée à la conversion et à l'affichage en tant que std::wstring . Le pointeur est garanti d'être valide au moins jusqu'à la destruction de l'objet exception duquel il est obtenu, ou jusqu'à l'appel d'une fonction membre non-const (par exemple l'opérateur d'affectation par copie) sur l'objet exception.

Notes

Les implémentations sont autorisées mais non obligées de redéfinir what() .

Hérité de std:: bad_cast

Hérité de std:: exception

Fonctions membres

[virtual]
détruit l'objet exception
(fonction membre publique virtuelle de std::exception )
[virtual]
retourne une chaîne explicative
(fonction membre publique virtuelle de std::exception )

Exemple

#include <any>
#include <cassert>
#include <print>
int main()
{
    auto x = std::any(42);
    assert(std::any_cast<int>(x) == 42); // OK
    try
    {
        [[maybe_unused]] auto s = std::any_cast<std::string>(x); // lève une exception
    }
    catch (const std::bad_any_cast& ex)
    {
        std::println("{}", ex.what());
    }
}

Sortie possible :

bad any_cast