std::default_initializable
Определено в заголовке <concepts> | ||
|---|---|---|
template< class T >
concept default_initializable = std::constructible_from<T> && requires { T{}; } &&
/* T t; is well-formed, see below */;
| (с 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) | определяет, что переменная типа может быть создана или привязана к набору типов аргументов (концепция) |
|
(C++11)(C++11)(C++11) | проверяет, имеет ли тип конструктор по умолчанию (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/concepts/default_initializable