我正在阅读一些提升代码,并遇到了这个:
inline sparse_vector &assign_temporary(sparse_vector &v) {
swap(v);
return *this;
}
template<class AE>
inline sparse_vector &operator=(const sparse_vector<AE> &ae) {
self_type temporary(ae);
return assign_temporary(temporary);
}
它似乎将所有构造函数映射到赋值运算符。伟大的。但是为什么 C++ 会选择让它们做不同的事情呢?我能想到的只是 scoped_ptr?