编辑回复: 你可以看看吴老师那个C++专栏。
作者回复: hh谢谢 会考虑的
作者回复: 其实这几个一起看就行,我这里说的只是从我的角度来看,毕竟C++语言细节复杂使用方式也各种各样,所以仅供参考。其实这三个convention主要就是为了减少不必要的对象拷贝过程,用移动或者in-place生成来代替拷贝构造进而提高性能,但现代编译器都会有各种优化手段比如RVO和NRVO,不一定这么做就会提高性能,但如果团队协作的话可以作为一种规范,毕竟没有坏处。BTW,这里的“禁止”要看具体的类和场合,也不能一概而论。
作者回复: 在满足一定条件(没有用户定义的拷贝构造函数、拷贝赋值、移动赋值以及析构函数)的时候会自动生成 implicitly-declared 的移动构造函数。当然细节比较多可以看下cppreference上的语言规范。