POD全稱Plain Old Data。通俗的講,一個類或結構體通過二進制拷貝後還能保持其資料不變,那麼它就是一個POD類型。
C++11将POD劃分為兩個基本概念的合集,即:平凡的和标準布局的。
有平凡的構造函數
有平凡的拷貝構造函數
有平凡的移動構造函數
有平凡的析構函數
有平凡的拷貝指派運算符
有平凡的移動指派運算符
不能含有虛函數
不能包含虛基類
所有非靜态成員有相同的通路權限
繼承樹中最多隻能有一個類有非靜态資料成員
子類的第一個非靜态成員不可以是基類類型
沒有虛函數
沒有虛基類
所有非靜态成員都符合标準布局類型
當一個資料類型滿足了”平凡的定義“和”标準布局“,我們則認為它是一個POD資料。可以通過std::is_pod來判斷一個類型是否為POD類型。
C++11:POD資料類型