is_pod Sınıfı
Türün POD olup olmadığını sınar.
Sözdizimi
template <class T>
struct is_pod;
Parametreler
T
Sorgulanacak tür.
Açıklamalar
is_pod<T>::value
T true
türü Düz Eski Veri (POD) ise olur. Aksi takdirde olur false
.
Aritmetik türler, numaralandırma türleri, işaretçi türleri ve üye türleri işaretçisi POD'lardır.
POD türünün cv-qualified sürümü kendisi bir POD türüdür.
POD dizisinin kendisi POD'dur.
Statik olmayan veri üyeleri POD olan bir yapı veya birleşim, şu özelliklere sahipse pod'dur:
Kullanıcı tarafından bildirilen oluşturucu yok.
Özel veya korumalı statik olmayan veri üyeleri yok.
Temel olmayan sınıflar.
Sanal işlev yok.
Başvuru türünün statik olmayan veri üyesi yok.
Kullanıcı tanımlı kopyalama atama işleci yok.
Kullanıcı tanımlı yok edici yok.
Bu nedenle, POD yapılarını ve dizilerini içeren POD yapılarını ve dizilerini özyinelemeli olarak oluşturabilirsiniz.
Örnek
// std__type_traits__is_pod.cpp
// compile with: /EHsc
#include <type_traits>
#include <iostream>
struct trivial {
int val;
};
struct throws {
throws() {} // User-declared ctor, so not POD
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);
}
is_pod<trivial> == true
is_pod<int> == true
is_pod<throws> == false
Gereksinimler
Üst Bilgi:<type_traits>
Ad alanı: std