Namespaces
Variants

std:: default_initializable

From cppreference.net
Definiert in Header <concepts>
template < class T >

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

/* T t; ist wohlgeformt, siehe unten */ ;
(seit C++20)

Das default_initializable Konzept prüft, ob Variablen vom Typ T können

Die Zugriffsprüfung erfolgt, als ob in einem Kontext unabhängig von T. Nur die Gültigkeit des unmittelbaren Kontexts der Variableninitialisierung wird berücksichtigt.

Mögliche Implementierung

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

Referenzen

  • C++23-Standard (ISO/IEC 14882:2024):
  • 18.4.12 Konzept default_initializable [concept.default.init]
  • C++20-Standard (ISO/IEC 14882:2020):
  • 18.4.12 Konzept default_initializable [concept.default.init]

Siehe auch

spezifiziert, dass eine Variable des Typs aus oder an eine Menge von Argumenttypen konstruiert oder gebunden werden kann
(Konzept)
prüft, ob ein Typ einen Standardkonstruktor besitzt
(Klassentemplate)