以下使类不可复制的宏是否有任何问题?
#define PREVENT_COPY(class_name) \
class_name(const class_name&) = delete;\
class_name& operator=(const class_name&) = delete;
class Foo
{
public:
PREVENT_COPY(Foo)
// .......
};
最佳答案
通常情况下,宏通常被构造为在行尾需要一个分号,就像普通语句一样。
因此,我建议:
#define PREVENT_COPY(class_name) class_name(const class_name&) = delete;\
class_name& operator=(const class_name&) = delete
用法:
class Foo
{
public:
PREVENT_COPY(Foo); // Semi-colon required.
// .......
};
关于c++ - 使类不可复制的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770213/