std:: default_initializable
|
Definido en el encabezado
<concepts>
|
||
|
template
<
class
T
>
concept default_initializable
=
std::
constructible_from
<
T
>
&&
requires
{
T
{
}
;
}
&&
|
(desde C++20) | |
El concepto
default_initializable
verifica si las variables de tipo
T
pueden ser
- value-initialized (es decir, si T ( ) está bien formado);
- direct-list-initialized desde una lista de inicializadores vacía (es decir, si T { } está bien formado); y
- default-initialized (es decir, si T t ; está bien formado).
La verificación de acceso se realiza como si fuera en un contexto no relacionado con T. Solo se considera la validez del contexto inmediato de la inicialización de la variable.
Implementación posible
template<class T> concept default_initializable = std::constructible_from<T> && requires { T{}; ::new T; }; |
Referencias
- Estándar C++23 (ISO/IEC 14882:2024):
-
-
18.4.12 Concepto
default_initializable[concept.default.init]
-
18.4.12 Concepto
- Estándar C++20 (ISO/IEC 14882:2020):
-
-
18.4.12 Concepto
default_initializable[concept.default.init]
-
18.4.12 Concepto
Véase también
|
(C++20)
|
especifica que una variable del tipo puede ser construida desde o enlazada a un conjunto de tipos de argumentos
(concept) |
|
(C++11)
(C++11)
(C++11)
|
verifica si un tipo tiene un constructor por defecto
(class template) |