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. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost