std:: default_initializable
|
Défini dans l'en-tête
<concepts>
|
||
|
template
<
class
T
>
concept default_initializable
=
std::
constructible_from
<
T
>
&&
requires
{
T
{
}
;
}
&&
|
(depuis C++20) | |
Le concept
default_initializable
vérifie si les variables de type
T
peuvent être
- initialisé par valeur (c'est-à-dire si T ( ) est bien formé) ;
- initialisé par liste directe à partir d'une liste d'initialisation vide (c'est-à-dire si T { } est bien formé) ; et
- initialisé par défaut (c'est-à-dire si T t ; est bien formé).
La vérification d'accès est effectuée comme si dans un contexte sans rapport avec T. Seule la validité du contexte immédiat de l'initialisation de la variable est prise en compte.
Implémentation possible
template<class T> concept default_initializable = std::constructible_from<T> && requires { T{}; ::new T; }; |
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
-
18.4.12 Concept
default_initializable[concept.default.init]
-
18.4.12 Concept
- Norme C++20 (ISO/IEC 14882:2020) :
-
-
18.4.12 Concept
default_initializable[concept.default.init]
-
18.4.12 Concept
Voir aussi
|
(C++20)
|
spécifie qu'une variable du type peut être construite à partir ou liée à un ensemble de types d'arguments
(concept) |
|
(C++11)
(C++11)
(C++11)
|
vérifie si un type a un constructeur par défaut
(modèle de classe) |