White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

C++のスマポがだめな気がしてきた

C++のauto_ptrやboost::shared_ptr、weak_ptrなどは、同じポインタから作られたスマポを、同一のものとして認識できるのであろうか?
なんでこんなことを考えたかといいますと、thisポインタに取って代わるものが無いんじゃないかと感じたので。
(出来ない場合、ってかできないよなぁ・・)回避方法としては、生成時にHogePtr(new Hoge());ってやんないで、newをオーバロードするなり、コンストラクタにHogePtrへの参照を引数として持たせて、コンストラクタ内で自分自身へのshared_ptrとweak_ptrを生成して、weak_ptrを保存する(shared_ptrを持つと、いつまでたっても消えなくなるため)ということが考えられるけど。

this使わなければいいじゃんって意見もあるけど、一つのクラスのパラメータに関してはそのクラス内だけで完結させたい。

追記:
やっぱだめっぽい。普通に考えたらだめだとおもうが。

#include
#include


using namespace std;

void main()
{
typedef boost::shared_ptr IntPtr;
list l,l2;

int *pi = new int();
l.push_back(IntPtr(pi));
l2.push_back(IntPtr(pi));

list::iterator it;

it = l.begin();
while(it != l.end())
{
it = l.erase(it);
}

it = l2.begin();
while(it != l2.end())
{
it = l2.erase(it);
}
}