◐ Shell
clean mode source ↗

std::default_initializable - cppreference.com

De cppreference.com

Definido en el archivo de encabezado <concepts>

template < class T > concept default_initializable = std::constructible_from<T> && requires { T{}; } && /* T t; está bien formada, véase más abajo */;

(desde C++20)

El concepto default_initializable (inicializable por defecto/construido por defecto) comprueba si las variables de tipo T pueden ser

  • inicializadas por valor (la expresión T() está bien formada);
  • inicializadas mediante la inicialización de lista directa a partir de una lista de inicializadores vacía (la expresión T{} está bien formada); y
  • inicializadas por defecto (la expresión T t; está bien formada).

Se realiza la comprobación de acceso como si lo fuera en un contexto no relacionado con T. Se considera solamente la validez del contexto inmediato de la inicialización de la variable.

Posible implementación

template<class T>
concept default_initializable =
    std::constructible_from<T> &&
    requires { T{}; } &&
    requires { ::new (static_cast<void*>(nullptr)) T; };

Véase también