The --C Programing Language

このエントリーをはてなブックマークに追加
78デフォルトの名無しさん
C++のコピーコンストラクタは、不必要な場所でも完全なコピーを
要求するから嫌。重くなるだけならいいけど、例外を起こされたら
たまらない。
vector(vector &src, move_t) throw()
    : _M_start(src._M_start), _M_finish(src._M_finish),
      _M_end_of_strage(src._M_end_of_strage) {}
みたいに定義しておくと、returnする時とかの、本当のコピーが
要らない場合に呼ばれるようにしてほしい。ついでに
void vector::assign(vector &src, move_t) throw() {
    vector tmp(src, move_t);
    swap(tmp);
}
なんてのも用意して、STLから使えば、もっと安全で高速なコンテナが
作れるし。uninitialized_copy()やdestroy()があるくらいだから、
オブジェクトの移動くらいサポートしてもいいと思うんだけど。