几个月来,我一直在使用 Google 的C++ 样式指南中的 DISALLOW_COPY_AND_ASSIGN 宏,但最近我发现另外禁用移动构造函数和移动赋值会很有用。
我之前没有写过任何真正的宏(事实上,我一直在尽可能地远离它们),所以我想从你们其他人那里得到一些关于我是否实现它的反馈正确。
// Original Version
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
// Modified Version (no move semantics)
#define DISALLOW_COPY_MOVE_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&); \
TypeName(TypeName&&); \
void operator=(const TypeName&&)
非常欢迎提出建议和批评。
谢谢你的时间!