Namespaces
Variants

std:: default_initializable

From cppreference.net
Défini dans l'en-tête <concepts>
template < class T >

concept default_initializable = std:: constructible_from < T > && requires { T { } ; } &&

/* T t; est bien formé, voir ci-dessous */ ;
(depuis C++20)

Le concept default_initializable vérifie si les variables de type T peuvent être

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]
  • Norme C++20 (ISO/IEC 14882:2020) :
  • 18.4.12 Concept default_initializable [concept.default.init]

Voir aussi

spécifie qu'une variable du type peut être construite à partir ou liée à un ensemble de types d'arguments
(concept)
vérifie si un type a un constructeur par défaut
(modèle de classe)