Fixed bool conversions for Sun 5.3

[SVN r18419]
This commit is contained in:
Peter Dimov
2003-05-16 12:11:17 +00:00
parent e760759414
commit bc00d5fa1a
5 changed files with 90 additions and 0 deletions
+20
View File
@@ -15,6 +15,9 @@
#include <boost/assert.hpp>
#include <boost/checked_delete.hpp>
#include <boost/config.hpp> // in case ptrdiff_t not in std
#include <boost/detail/workaround.hpp>
#include <cstddef> // for std::ptrdiff_t
namespace boost
@@ -83,6 +86,21 @@ public:
// implicit conversion to "bool"
#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
operator bool () const
{
return ptr != 0;
}
private:
operator int () const;
public:
#else
typedef T * (this_type::*unspecified_bool_type)() const;
operator unspecified_bool_type() const // never throws
@@ -90,6 +108,8 @@ public:
return ptr == 0? 0: &this_type::get;
}
#endif
bool operator! () const // never throws
{
return ptr == 0;