C++ именованные требования:DefaultConstructible
Определяет, что экземпляр данного типа может быть сконструирован по умолчанию.
[править]Требования
Тип T
удовлетворяет DefaultConstructible если
Дан
u
, произвольный идентификатор
Следующие выражения должны быть допустимыми и иметь указанные эффекты
Выражение | Постусловие |
---|---|
T u | Объект u является default-initialized |
T u{} | Объект u является value-initialized или aggregate-initialized. |
T() T{} | Временный объект типа T является value-initialized или aggregate-initialized. |
===Заметки
[править]=
Для объектов, принадлежащих классу не агрегатного типа, публичный default constructor должен быть определен (либо определяемый пользователем, либо неявно определенный) чтобы удовлетворить DefaultConstructible.
Не константные объекты типа non-class object type всегда DefaultConstructible.
Константные типы не относящиеся к классам не являются DefaultConstructible.
Константные агрегатные типы не являются DefaultConstructible если любой из их членов является объектом не относящимся к классам.
Не объектные типы (функции, ссылки, и (возможно cv-квалифицированный) тип void) так-же как и константные не объектные типы никогда не являются DefaultConstructible
[править]Смотри также
проверяет, есть ли у типа конструктор по умолчанию (шаблон класса) | |
(C++20) | указывает, что объект типа может быть сконструирован по умолчанию (концепт) |