经过16年的中断,我正在重读Scott Meyers的Effective C++.虽然我还没有阅读最新的C++标准,但是我注意到自从第二版Effective C++编写以来C++发生了变化.在他的书的第三版中,Scott Meyers提到即使你有一个空类,意味着没有什么可以初始化或分配,C++编译器仍然会生成至少3个默认函数,即默认构造函数,默认复制构造函数,赋值运算符,可能还有其他一些函数.根据Meyers先生的说法,以下代码将导致产生上述功能.
class Empty {}
Empty E1; // Default constructor.
Empty E2 ( E1 ); // Default copy constructor.
E1 = E2; // Default assignment operator.
Run Code Online (Sandbox Code Playgroud)
考虑到没有什么可以初始化,因为类是空的,C++是否仍然为所述函数生成某种代码?