名稱空間
變體
操作

C++ 命名要求: TriviallyCopyable (自 C++11 起)

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
TriviallyCopyable(可平凡複製)
(C++11)
全庫範圍




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
隨機數
併發
(C++11)
Ranges
多維檢視
其他

 

注意:標準沒有定義以此名稱命名的需求。這是一個由核心語言定義的型別類別。此處將其作為命名需求包含在內,僅為保持一致性。

目錄

[編輯] 要求

以下型別統稱為 可平凡複製型別

[編輯] 注意

通常,對於任何可平凡複製型別 TT 型別物件 obj1obj1 的底層位元組可以被複制到一個 charunsigned char 陣列中,或者 std::byte(自 C++17 起),或者複製到 obj2(一個與 obj1 不同的 T 型別物件)中。obj1obj2 都不能是潛在重疊的子物件。

如果 obj1 的底層位元組被複制到這樣的陣列中,然後將結果內容複製回 obj1 中,obj1 將保留其原始值。如果 obj1 的底層位元組被複制到 obj2 中,obj2 將持有 obj1 的值。

只要沒有訪問存活的 volatile 物件,底層位元組可以透過 std::memcpystd::memmove 進行復制。

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
CWG 1734 C++11 C++03 POD 帶已刪除的非平凡賦值運算子不再是平凡的 允許已刪除的建構函式/運算子
CWG 2094 C++11 Volatile 標量型別不是可平凡複製的 (CWG 1746) 被設為可平凡複製

[編輯] 參閱

檢查型別是否為可平凡複製型別
(類模板) [編輯]