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) |
указывает, что объект типа может быть сконструирован по умолчанию (концепт) |