"David B. Held" <[EMAIL PROTECTED]> wrote in message
b1ehpj$j1n$[EMAIL PROTECTED]">news:b1ehpj$j1n$[EMAIL PROTECTED]...
> [...]
> ~InitializerScopeGuard()
> { if (execute_) storage::release(); }
Oops!
~InitializerScopeGuard()
{ if (execute_) storage_.release(); }
Also, I don't need the extra layer of indirection. I could just
implement ref_counted directly, like so:
template <typename U>
ref_counted(std::auto_ptr<U>& p, InitializerScopeGuard guard)
: count_(new unsigned(1))
{
guard.cancel();
p.release();
}
smart_ptr(std::auto_ptr<U>& p)
: storage(p), ownership(p, InitializerScopeGuard(*this)),
checking(), conversion()
{ checking::on_init(p); }
Of course, the big question is whether it's valid to refer to 'this' for
a partially c'ted object, even if you only refer to the fully c'ted
portions.
Dave
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost