私はいくつかのブーストコードを読んでいて、これに出くわしました:
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だけですか?