2013-04-08 62 views
4

是否有類似於C++ 11引入的類http://www.boost.org/doc/libs/1_53_0/boost/noncopyable.hpp?我不能使用= delete功能,因爲我的編譯器不支持它。如果可能的話,我寧願使用標準庫功能,而不是增強或實現我自己的功能。C++ 11不可複製類

+3

你可以像在C++ 03中一樣創建一個私有拷貝構造函數和賦值操作符。 – kennytm 2013-04-08 13:08:34

+0

@KennyTM是的,但這將迫使我有一個默認的構造函數,有時我不想要一個... – Felics 2013-04-08 13:23:38

+1

Boost.noncopyable還引入了一個(受保護的)默認c'tor,如果您檢查源... – kennytm 2013-04-08 13:26:19

回答

12

不,沒有類似的標準類。爲此,C++ 11引入了= delete,所以另外引入一個類將會是不必要的冗餘和無用的。

3

我不認爲不可複製是無用的。 '= delete'需要使用兩次(複製ctor和賦值運算符),這將會導致太多的輸入。 如果你的代碼已經依賴於boost - 使用boost :: noncopyable是首選。