【发布时间】:2016-01-20 12:03:48
【问题描述】:
Special member functions - Wikipedia, the free encyclopedia表示如果满足条件会自动生成下面列出的特殊成员函数。
- 默认构造函数
- 复制构造函数
- 移动构造函数
- 复制赋值运算符
- 移动赋值运算符
- 析构函数
第一季度。如何查看编译器自动生成的特殊成员函数的实现?
第二季度。实现是否依赖于编译器?还是C++标准定义的?
编辑 - 我的问题是编译器如何生成函数,而不是何时。我想知道编译器尽可能正确生成的源代码。我不认为这个问题与c++ - When does the compiler provide definitions for the special members of a class? - Stack Overflow 重复。
【问题讨论】:
-
Q1 很难。 Q2 在标准第 12 节中定义。
-
@BoPersson:我不认为这是重复的。另一个问题是何时 编译器应该生成特殊成员,这个问题是问 implementation 是否可用和/或由标准定义。无论如何,我已经添加了一个答案there
-
@Serge - 另一个问题/答案是指所有规则的标准§§。至少这肯定回答了第二季度。
-
@BoPersson:我不同意你的看法。我的理解是,OP不问特殊成员需要什么,而是实现源代码是否可用,并由标准定义。后一部分可以由What exactly is the “as-if” rule? 部分回答,但恕我直言,它仍然需要编译器不需要为特殊成员生成源代码的精度。
-
@SergeBallesta 如果你能在这里写下你的答案,我会接受它作为最佳答案。
标签: c++