我讀了一些提振代碼,碰到這樣的:爲什麼賦值運算符會執行與其匹配構造函數不同的操作?
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?