`

Item 6 如何禁用编译器产生的函数

 
阅读更多

如果要禁用编译器自动产生的copy ctor和拷贝构造函数,一般用下面的方法:

更明智的办法是定义一个空的基类:

1> 当客户/成员函数/友元函数要拷贝UniqueMoo对象时,编译器自动调用Uncopyable的拷贝函数,于是产生编译错误。
2> Uncopyable没有成员变量,所以在单重继承时,一般会有empty base class optimization。多重继承时则一般没有。
3> Boost里有现成的实现:noncopyable

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics