std::default_initializable
Материал из cppreference.com
Определено в заголовочном файле <concepts>
|
||
template < class T > concept default_initializable = std::constructible_from<T> && requires { T{}; } && |
(начиная с C++20) | |
Концепт default_initializable
проверяет, могут ли переменные типа T
быть
- инициализированы значением (T() корректен);
- напрямую инициализированы списком из пустого списка инициализаторов (T{} корректен); и
- инициализированы по умолчанию (T t; корректен).
Проверка доступа осуществляется также в случае когда контекст не имеет отношения к T. Учитывается только действительность непосредственного контекста инициализации переменной.
[править] Возможное использование
template<class T> concept default_initializable = std::constructible_from<T> && requires { T{}; } && requires { ::new T; }; |
[править] Смотрите также
(C++20) |
указывает, что переменная типа может быть создана из набора или привязана к типам аргументов (концепт) |
проверяет, есть ли у типа конструктор по умолчанию (шаблон класса) |