is_pod – třída
Zkoušky, pokud je typ LUSKU.
template<class Ty>
struct is_pod;
Parametry
- Ty
Typ dotazu.
Poznámky
is_pod<Ty>::valueje true -li typ Ty je obyčejný starý dat (POD).Jinak by se false.
Aritmetické typy, výčtové typy, typy ukazatele a ukazatele na typy členů jsou POD.
Kvalifikované cv verzi POD typ je typ POD.
Pole POD sebe sama je POD.
Unie, jejíž data nestatické členy jsou POD, nebo struktury je sám POD má:
Žádné konstruktory prohlášena za uživatele.
Žádné dat nestatickou soukromé nebo chráněné členy.
Žádné základní třídy.
Žádné virtuální funkce.
Žádní členové dat nestatickou typu odkaz.
Žádné kopie uživatelem definovaný operátor přiřazení.
Žádné uživatelské destruktor.
Proto je možné rekurzivně sestavení POD struktur a polí, které obsahují POD struktury a pole.
Příklad
// std_tr1__type_traits__is_pod.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 << "is_pod<trivial> == " << std::boolalpha
<< std::is_pod<trivial>::value << std::endl;
std::cout << "is_pod<int> == " << std::boolalpha
<< std::is_pod<int>::value << std::endl;
std::cout << "is_pod<throws> == " << std::boolalpha
<< std::is_pod<throws>::value << std::endl;
return (0);
}
Požadavky
Záhlaví: <type_traits>
Obor názvů: std