std:: bad_variant_access
|
Défini dans l'en-tête
<variant>
|
||
|
class
bad_variant_access
:
public
std::
exception
|
(depuis C++17) | |
std::bad_variant_access
est le type de l'exception levée dans les situations suivantes :
- std::get (std::variant) appelée avec un index ou un type qui ne correspond pas à l'alternative actuellement active.
-
std::visitappelée pour visiter unvariantqui estvalueless_by_exception.
|
(depuis C++26) |
Toutes les fonctions membres de
std::bad_variant_access
sont
constexpr
: il est possible de créer et d'utiliser des objets
std::bad_variant_access
lors de l'évaluation d'une expression constante.
Cependant, les objets
|
(depuis C++26) |
Table des matières |
Fonctions membres
|
(constructeur)
|
construit un nouvel objet
bad_variant_access
(fonction membre publique) |
|
operator=
|
remplace l'objet
bad_variant_access
(fonction membre publique) |
|
what
|
retourne la chaîne explicative
(fonction membre publique) |
std::bad_variant_access:: bad_variant_access
|
bad_variant_access
(
)
noexcept
;
|
(1) |
(depuis C++17)
(constexpr depuis C++26) |
|
bad_variant_access
(
const
bad_variant_access
&
other
)
noexcept
;
|
(2) |
(depuis C++17)
(constexpr depuis C++26) |
Construit un nouvel objet
bad_variant_access
avec une chaîne d'octets terminée par un caractère nul définie par l'implémentation, accessible via
what()
.
std::bad_variant_access
alors
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
.
Paramètres
| other | - | un autre objet d'exception à copier |
std::bad_variant_access:: operator=
|
bad_variant_access
&
operator
=
(
const
bad_variant_access
&
other
)
noexcept
;
|
(depuis C++17)
(constexpr depuis C++26) |
|
Assigne le contenu avec celui de
other
. Si
*
this
et
other
ont tous deux le type dynamique
std::bad_variant_access
alors
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
après l'assignation.
Paramètres
| other | - | un autre objet d'exception à assigner |
Valeur de retour
* this
std::bad_variant_access:: what
|
virtual
const
char
*
what
(
)
const
noexcept
;
|
(depuis C++17)
(constexpr depuis C++26) |
|
Retourne la chaîne explicative.
Valeur de retour
Pointeur vers une chaîne implémentation-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 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.
|
La chaîne retournée est encodée avec l'encodage littéral ordinaire durant l'évaluation constante. |
(depuis C++26) |
Notes
Les implémentations sont autorisées mais non requises à redéfinir
what()
.
Hérité de std:: exception
Fonctions membres
|
[virtuel]
|
détruit l'objet exception
(fonction membre publique virtuelle de
std::exception
)
|
|
[virtuel]
|
retourne une chaîne explicative
(fonction membre publique virtuelle de
std::exception
)
|
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_constexpr_exceptions
|
202502L
|
(C++26) |
constexpr
std::bad_variant_access
|
Exemple
#include <iostream> #include <variant> int main() { std::variant<int, float> v; v = 12; try { std::get<float>(v); } catch (const std::bad_variant_access& e) { std::cout << e.what() << '\n'; } }
Sortie possible :
bad_variant_access
Voir aussi
|
(C++17)
|
lit la valeur du variant donné l'index ou le type (si le type est unique), lance une exception en cas d'erreur
(modèle de fonction) |
|
(C++17)
|
appelle le foncteur fourni avec les arguments contenus dans un ou plusieurs
variant
s
(modèle de fonction) |
|
(C++26)
|
appelle le foncteur fourni avec l'argument contenu dans le
variant
(fonction membre publique) |
|
(C++17)
|
exception indiquant un accès vérifié à un optional qui ne contient pas de valeur
(classe) |
|
(C++23)
|
exception indiquant un accès vérifié à un
expected
qui contient une valeur inattendue
(modèle de classe) |