阻止编译器自动生成copy函数和重载等号操作符

来源:互联网 发布:淘宝卖家软件有哪些 编辑:程序博客网 时间:2024/06/05 04:16

在看caffe源码的时候发现如下的代码:

#define DISABLE_COPY_AND_ASSIGN(classname) \private:\  classname(const classname&);\  classname& operator=(const classname&)

1.首先要明白这里反斜杠可以理解为续行符(链接下一行的,写在一行可读性比较差)

如果代码中有使用这样的语句class Test

class Test{CLASS_UNCOPYABLE(Test);};

则代码会被替换为:

class Test{private:Test (const Test&); Test& operator=(const Test&);};
这样就起到了阻止编译器自动生成copy函数和重载等号操作符函数。

0 0
原创粉丝点击