is_pod Class

如果型別是 POD 的測試。

template<class Ty>
    struct is_pod;

參數

  • Ty
    要查詢的類型。

備註

is_pod<Ty>::value是true如果型別Ty是一般的舊資料 (POD)。否則就會是false。

算術型別、 列舉型別、 指標型別和成員型別的指標是 POD。

Cv 限定新版 POD 型別本身就是 POD 型別。

陣列本身就是 POD 的 POD。

結構或等位,所有的非靜態資料成員皆 POD,本身就是 POD 若有:

  • 沒有使用者宣告建構函式。

  • 沒有任何的私用或保護的非靜態資料成員。

  • 沒有基底類別。

  • 沒有虛擬的函式。

  • 參考型別沒有非靜態資料成員。

  • 沒有使用者定義複製指派運算子。

  • 沒有使用者定義解構函式。

因此,您可以以遞迴方式建置 POD 結構和包含 POD 結構和陣列的陣列。

範例

// 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); 
    } 
 
  

需求

標頭: <type_traits>

Namespace: 標準

請參閱

參考

<type_traits>

其他資源

<type_traits> 成員