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