std::vector::push_back(constT& value)
根据这里的要求,需要类型T是可拷贝插入的。
然而,使用failes编译以下程序(clang、GCC、Visual; 都没有使用c++11),除非我提供一个公共赋值运算符。
#include <vector>
class A {
A& operator= (const A& rhs); //private !!
};
int main() {
std::vector<A> v;
A a;
v.push_back(a);
}
为什么我需要提供这个赋值运算符,我原本以为复制构造函数就足够了。
P.S. 我找不到标准中定义这一点的地方,如果你能指出参考文献,我将不胜感激。