簡體   English   中英

C ++ is_trivially_copyable檢查

[英]C++ is_trivially_copyable check

如何檢查C ++類型是否可以輕易復制? 我有一個類,它使用具有指定模板類型T的memcpy和memcmp函數,我想為類型啟動斷言,使用memcpy復制是不安全的。 有沒有辦法(使用現有標准)?

不,在C ++ 98 / C ++ 03中不可能。 這樣的事情是<type_traits>被添加到C ++ 0x的原因。 <type_traits>一些功能可以在C ++ 03中實現,通常使用SFINAE原則,但是包括std::is_trivially_copyable<T>在內的一些功能只需要內置的編譯器支持。

在boost中有可用的類型特征。

但是,你是在浪費你的時間memcpying一個類型不是會比你的優化器將與拷貝構造函數產生,如果該類型平凡的可復制得更快。 只需使用復制構造函數。

最接近的是boost :: is_pod <>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM