has_trivial_assign — Klasa
Przypisz sprawdza, czy typ został uproszczony.
template<class Ty>
struct has_trivial_assign;
Parametry
- Ty
Typ kwerendy.
Uwagi
Wystąpienie typu predykat posiada wartość PRAWDA, jeśli typ Ty jest klasą, która ma trivial operator przypisania, inaczej przechowuje wartość false.
Operator przypisania kopii dla klasy Ty jest trivial jeśli:
jest deklarowany niejawnie
Klasa Ty nie ma wirtualnego funkcji
Klasa Ty ma nie baz wirtualnych
wszystkie bezpośrednie podstawy klasy Ty mieć kopię trivial operatory przypisania
klasy wszystkich członków danych statycznych typu klasy mają operatory przypisania trivial kopii
klasy wszystkich członków danych statycznych typu tablicy klasy mają operatory przypisania trivial kopii
Przykład
// 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);
}
Wymagania
Nagłówek: <type_traits>
Przestrzeń nazw: std