08/07/02 13:35:58
>>816
それだと m[0] に既存のポインタが入っていた場合にリークする。
↓これでいいかな?
foo* p = new foo;
try
{
&nbps; foo*& in = m[n];
&nbps; delete in;
&nbps; in = p;
}
catch (...)
{
&nbps; delete p;
&nbps; throw;
}
「スマポ使えない」と言ってもさすがに auto_ptr は使えるだろうから、
↓こっちのがいいと思う。
std::auto_ptr<foo> p(new foo);
foo*& in = m[n];
delete in;
in = p.release();