forked from boostorg/smart_ptr
Fixed bool conversions for Sun 5.3
[SVN r18419]
This commit is contained in:
1 parent
e760759414
commit
bc00d5fa1a
5 files changed
+90
No files matched your search
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <boost/assert.hpp>
|
||||
#include <boost/checked_delete.hpp>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#ifndef BOOST_NO_AUTO_PTR
|
||||
# include <memory> // for std::auto_ptr
|
||||
@@ -102,6 +103,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
|
||||
@@ -109,6 +125,8 @@ public:
|
||||
return ptr == 0? 0: &this_type::get;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool operator! () const // never throws
|
||||
{
|
||||
return ptr == 0;
|
||||
|
||||
Reference in new issue
Block a user