$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Peter Dimov (pdimov_at_[hidden])
Date: 2003-03-26 12:53:42
Giovanni Bajo wrote:
> Hello,
>
> I have observed a strange behaviour with shared_ptr:
>
> struct A
> {
> shared_ptr<int> ptr;
>
> operator bool()
> { return ptr; }
> };
>
> A a;
> a.ptr.reset(new int);
> assert(a.ptr);
> assert(a);
>
> Now, the second assertion fails (Comeau). It works if for example I
> change
> my operator bool into "return ptr ? true : false;". This is
> counter-intuitive to me. Can anybody explain me why?
Beats me. All other compilers I tried do not assert. On como,
assert((bool)a.ptr) passes, but even an explicit (bool)ptr inside the
conversion operator returns false.