Класс has_trivial_copy
Тесты, если тип имеет тривиальный конструктор копий.
template<class Ty>
struct has_trivial_copy;
Параметры
- Ty
Тип в запрос.
Заметки
Экземпляр предиката типа содержит значение true, если тип Ty класс, который содержит тривиальный конструктор копии, в противном случае содержит значение false.
Конструктора для класса Ty нетривиальной задачей, если:
неявно объявляется
класс Ty отсутствуют виртуальные функции
класс Ty отсутствуют базы виртуального
все непосредственно базы класса Ty имеют тривиальные конструкторы копирования
классы всех не статических членов данных типа класса имеют тривиальные конструкторы копирования
классы всех элементов массива не статических данных типа класса имеют тривиальные конструкторы копирования
Пример
// std_tr1__type_traits__has_trivial_copy.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_copy<trivial> == " << std::boolalpha
<< std::has_trivial_copy<trivial>::value << std::endl;
std::cout << "has_trivial_copy<throws> == " << std::boolalpha
<< std::has_trivial_copy<throws>::value << std::endl;
return (0);
}
Требования
Заголовок: <type_traits>
Пространство имен: std