diff --git a/include/boost/intrusive_ptr.hpp b/include/boost/intrusive_ptr.hpp index b612864..7db6dcf 100644 --- a/include/boost/intrusive_ptr.hpp +++ b/include/boost/intrusive_ptr.hpp @@ -128,7 +128,15 @@ public: return p_ != 0; } -#else +#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) + typedef T * (this_type::*unspecified_bool_type)() const; + + operator unspecified_bool_type() const // never throws + { + return p_ == 0? 0: &this_type::get; + } + +#else typedef T * this_type::*unspecified_bool_type;