Namespaces
Variants

C++ named requirements: DefaultConstructible

From cppreference.net
C++ named requirements

Especifica que una instancia del tipo puede ser construida por defecto.

Contenidos

Requisitos

El tipo T satisface DefaultConstructible si todas las siguientes declaraciones y expresiones son válidas y tienen sus efectos especificados:

Expresión/Sentencia Poscondición
T u ; El objeto u es default-initialized .
T u { } ; El objeto u es value-initialized o aggregate-initialized .
T ( )

T { }

Un objeto temporal de tipo T es value-initialized o aggregate-initialized .

Notas

Para objetos de tipo clase no agregado, se debe definir un constructor predeterminado público (ya sea definido por el usuario o definido implícitamente) para satisfacer DefaultConstructible .

Los objetos no constantes de tipo objeto no clase son siempre DefaultConstructible .

Los tipos no-clase constantes no son DefaultConstructible .

Los tipos agregados constantes no son DefaultConstructible si alguno de sus miembros es un objeto de tipo no-clase.

Los tipos que no son objetos (tipos de función, tipos de referencia y el tipo (posiblemente calificado cv) void ) así como los tipos const que no son objetos nunca son DefaultConstructible .

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Se aplica a Comportamiento publicado Comportamiento correcto
LWG 724 C++98 faltaban los requisitos de DefaultConstructible añadidos
LWG 2170 C++98 inicializar un objeto de un tipo DefaultConstructible con un
inicializador vacío solo podía resultar en inicialización de valor
también puede llevar a
inicialización de agregado

Véase también

verifica si un tipo tiene un constructor por defecto
(plantilla de clase)
especifica que un objeto de un tipo puede ser construido por defecto
(concepto)