在 C++11 中,我定义了以下一般形式的结构:
struct MyStruct
{
static void myFunc( void );
//constructors
MyStruct( void ) = delete;
};
MyStruct
由于默认构造函数被标记为已删除,因此无法创建任何类型的对象。甚至方法myFunc
也不能创建类的实例。尽管如此,该结构仍然可以使用,MyStruct::myFunc
并且public
可以从外部调用。
我现在的问题是:由于不可能创建任何类型MyStruct
的对象,编译器是否会费心为复制构造函数、地址运算符或析构函数创建代码?
顺便说一句:就我的实际代码而言,我确实必须根据静态类成员函数来实现功能,因为我必须利用部分模板类特化来模拟部分模板函数特化。所以我想知道如何才能让班级尽可能精简。
编辑:根据@Praetorian 的评论和回答,删除了关于自动生成地址运算符的注释。