std:: default_initializable
|
Definiert in Header
<concepts>
|
||
|
template
<
class
T
>
concept default_initializable
=
std::
constructible_from
<
T
>
&&
requires
{
T
{
}
;
}
&&
|
(seit C++20) | |
Das
default_initializable
Konzept prüft, ob Variablen vom Typ
T
können
- wertinitialisiert (d.h. ob T ( ) wohlgeformt ist);
- direkt-listeninitialisiert von einer leeren Initialisiererliste (d.h. ob T { } wohlgeformt ist); und
- standardinitialisiert (d.h. ob T t ; wohlgeformt ist).
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]
-
18.4.12 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.4.12 Konzept
default_initializable[concept.default.init]
-
18.4.12 Konzept
Siehe auch
|
(C++20)
|
spezifiziert, dass eine Variable des Typs aus oder an eine Menge von Argumenttypen konstruiert oder gebunden werden kann
(Konzept) |
|
(C++11)
(C++11)
(C++11)
|
prüft, ob ein Typ einen Standardkonstruktor besitzt
(Klassentemplate) |