forked from boostorg/smart_ptr
Fix g++ 3.2 regression.
[SVN r45177]
This commit is contained in:
@ -17,6 +17,16 @@
|
|||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE )
|
||||||
|
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )
|
||||||
|
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -57,4 +67,6 @@ template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_i
|
|||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE )
|
||||||
|
|
||||||
#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
|
#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
|
||||||
|
@ -22,10 +22,7 @@
|
|||||||
|
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
#include <boost/detail/workaround.hpp>
|
#include <boost/detail/workaround.hpp>
|
||||||
|
|
||||||
#if !defined( BOOST_NO_SFINAE )
|
|
||||||
#include <boost/detail/sp_convertible.hpp>
|
#include <boost/detail/sp_convertible.hpp>
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <functional> // for std::less
|
#include <functional> // for std::less
|
||||||
|
|
||||||
@ -78,7 +75,7 @@ public:
|
|||||||
#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
|
#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
|
||||||
|
|
||||||
template<class U>
|
template<class U>
|
||||||
#if !defined( BOOST_NO_SFINAE )
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
|
||||||
|
|
||||||
intrusive_ptr( intrusive_ptr<U> const & rhs, typename detail::sp_enable_if_convertible<U,T>::type = detail::sp_empty() )
|
intrusive_ptr( intrusive_ptr<U> const & rhs, typename detail::sp_enable_if_convertible<U,T>::type = detail::sp_empty() )
|
||||||
|
|
||||||
|
@ -31,10 +31,7 @@
|
|||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <boost/detail/shared_count.hpp>
|
#include <boost/detail/shared_count.hpp>
|
||||||
#include <boost/detail/workaround.hpp>
|
#include <boost/detail/workaround.hpp>
|
||||||
|
|
||||||
#if !defined( BOOST_NO_SFINAE )
|
|
||||||
#include <boost/detail/sp_convertible.hpp>
|
#include <boost/detail/sp_convertible.hpp>
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
|
#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
|
||||||
#include <boost/detail/spinlock_pool.hpp>
|
#include <boost/detail/spinlock_pool.hpp>
|
||||||
@ -228,7 +225,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<class Y>
|
template<class Y>
|
||||||
#if !defined( BOOST_NO_SFINAE )
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
|
||||||
|
|
||||||
shared_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
|
shared_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ public:
|
|||||||
//
|
//
|
||||||
|
|
||||||
template<class Y>
|
template<class Y>
|
||||||
#if !defined( BOOST_NO_SFINAE )
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
|
||||||
|
|
||||||
weak_ptr( weak_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
|
weak_ptr( weak_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<class Y>
|
template<class Y>
|
||||||
#if !defined( BOOST_NO_SFINAE )
|
#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
|
||||||
|
|
||||||
weak_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
|
weak_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user