知识卡片
成员模板不替代拷贝
内容
成员构造或赋值模板即使能实例化出类似拷贝的签名,也不会阻止编译器生成真正的拷贝与移动特殊成员。通用引用入口与特殊成员并存时,须分别检查重载决议和隐式生成规则,不能把模板当作替代品。
参考来源
- 位置:《Effective Modern C++》第3章《移步现代C++》,条款十七(源文件:_epub-src/EPUB/text/ch004.xhtml)
- 结论依据:原文明确成员函数模板不抑制特殊成员生成,并举出任意 T 的构造/赋值模板例子。
- 原始内容:注意没有“成员函数模版阻止编译器生成特殊成员函数”的规则。……编译器仍会生成移动和拷贝操作(假设正常生成它们的条件满足)。