stlとスマートポインタ

自作のスマートポインタオブジェクトをstd::vectorに登録していたら、はまりました。

std::vector::erase() でvectorに登録した要素を削除すると、eraseで指定したイテレータ以降のオブジェクトは、メモリコピーされてからデストラクタが呼び出されるんですね。

単なるメモリコピーだから、コピコンも代入演算子も呼び出されずにデストラクタだけが呼ばれると...

む?これって激バグなんじゃない?

ちょっと調べてみますか...

あ、Visual Studio 2005 Professional についてくるstlの話です

追記:
冷静に調べてみたら、ちゃんと代入演算( T* operator=() ( const T& ) )が呼び出されてました。(大汗

バグっていたのは、自分のテストコードだったりして...

あぁ駄目な子だぁ