Класс has_trivial_constructor
Тесты, если тип имеет тривиальный конструктор по умолчанию.
template<class Ty>
struct has_trivial_constructor;
Параметры
- Ty
Тип в запрос.
Заметки
Экземпляр предиката типа содержит значение true, если тип Ty класс, который содержит тривиальный конструктора, в противном случае содержит значение false.
Конструктор для класса Ty нетривиальной задачей, если:
это неявно объявленный конструктор по умолчанию
класс Ty отсутствуют виртуальные функции
класс Ty отсутствуют базы виртуального
все непосредственно базы Ty имеют тривиальные конструкторы класса
классы всех не статических членов данных типа класса имеют тривиальные конструкторы
классы всех элементов массива не статических данных типа класса имеют тривиальные конструкторы
Пример
// std_tr1__type_traits__has_trivial_constructor.cpp
// compile with: /EHsc
#include <type_traits>
#include <iostream>
struct trivial
{
int val;
};
struct throws
{
throws() throw(int)
{
}
throws(const throws&) throw(int)
{
}
throws& operator=(const throws&) throw(int)
{
}
int val;
};
int main()
{
std::cout << "has_trivial_constructor<trivial> == " << std::boolalpha
<< std::has_trivial_constructor<trivial>::value << std::endl;
std::cout << "has_trivial_constructor<throws> == " << std::boolalpha
<< std::has_trivial_constructor<throws>::value << std::endl;
return (0);
}
Требования
Заголовок: <type_traits>
Пространство имен: std