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