![]() |
1
21
实际上,隐式声明的复制构造函数的声明不会被禁止。这只是因为过载解决规则而没有被调用。
隐式声明的复制构造函数具有以下形式
或者你可以使用
描述这一点的过载解决规则主要是在C++ 0xFCD的{3.3.3.2/3中找到的。这个特殊的场景结合了lvalue和rvalue引用,有点像第303页上的各种示例所描述的那样。 变量构造函数模板将抑制隐式声明的默认构造函数,因为用户声明了一个可变构造函数模板,如果没有用户声明的构造函数(C++0x FCD×12.1),则只提供隐式声明的默认构造函数:
变量构造函数模板不会抑制隐式声明的复制构造函数,因为只有非模板构造函数可以是复制构造函数(C++0x FCD-Syth.128/2,3和8):
|