diff --git a/include/boost/shared_ptr.hpp b/include/boost/shared_ptr.hpp index 46bf69b..7f239b6 100644 --- a/include/boost/shared_ptr.hpp +++ b/include/boost/shared_ptr.hpp @@ -323,6 +323,8 @@ public: // implicit conversion to "bool" +/* + #if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530) operator bool () const @@ -330,6 +332,23 @@ public: return px != 0; } +#elif defined( _MANAGED ) + +*/ + + static void unspecified_bool( this_type*** ) + { + } + + typedef void (*unspecified_bool_type)( this_type*** ); + + operator unspecified_bool_type() const // never throws + { + return px == 0? 0: unspecified_bool; + } + +/* + #elif \ ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) @@ -352,6 +371,8 @@ public: #endif +*/ + // operator! is redundant, but some compilers need it bool operator! () const // never throws