Namensräume
Varianten
Aktionen

std::default_initializable

Von cppreference.com
< cpp‎ | concepts
 
 
 
Definiert in der Header-Datei <concepts>
template< class T >

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

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

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

Die Zugriffsprüfung erfolgt so, als ob sie in einem Kontext durchgeführt würde, der nicht mit T verwandt ist. Es wird nur die Gültigkeit des unmittelbaren Kontexts der Variableninitialisierung berücksichtigt.

[bearbeiten] Mögliche Implementierung

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

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

gibt an, dass eine Variable des Typs aus einer Reihe von Argumenttypen konstruiert oder an sie gebunden werden kann
(Konzept) [bearbeiten]
prüft, ob ein Typ einen Standardkonstruktor hat
(Klassenvorlage) [bearbeiten]