Namespaces
Variants

std:: default_initializable

From cppreference.net
Definido en el encabezado <concepts>
template < class T >

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

/* T t; está bien formado, ver más abajo */ ;
(desde C++20)

El concepto default_initializable verifica si las variables de tipo T pueden ser

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]
  • Estándar C++20 (ISO/IEC 14882:2020):
  • 18.4.12 Concepto default_initializable [concept.default.init]

Véase también

especifica que una variable del tipo puede ser construida desde o enlazada a un conjunto de tipos de argumentos
(concept)
verifica si un tipo tiene un constructor por defecto
(class template)