Fixes for Visual Studio 11 and GCC 4.3

[SVN r77889]
This commit is contained in:
Ion Gaztañaga
2012-04-10 18:44:17 +00:00
parent 9707b52cd5
commit 6ec33f4879
2 changed files with 10 additions and 3 deletions

View File

@@ -113,7 +113,7 @@
}; };
//! //!
#if !defined(_MSC_VER) || (_MSC_VER != 1600) #if !defined(_MSC_VER) || (_MSC_VER < 1600)
#if defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED) #if defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
@@ -126,7 +126,7 @@
static const bool value = true; static const bool value = true;
}; };
#else #else //defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
//Special case for 0 args //Special case for 0 args
template< class F template< class F
@@ -162,7 +162,7 @@
static const bool value = sizeof(Test< Fun >(0)) static const bool value = sizeof(Test< Fun >(0))
== sizeof(boost_intrusive_has_member_function_callable_with::yes_type); == sizeof(boost_intrusive_has_member_function_callable_with::yes_type);
}; };
#endif #endif //defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
#else //#if !defined(_MSC_VER) || (_MSC_VER != 1600) #else //#if !defined(_MSC_VER) || (_MSC_VER != 1600)
template<typename Fun> template<typename Fun>

View File

@@ -251,6 +251,13 @@ struct type_rebinder<Ptr<T, Tn...>, U, 0u >
typedef Ptr<U, Tn...> type; typedef Ptr<U, Tn...> type;
}; };
//Needed for non-conforming compilers like GCC 4.3
template <template <class> class Ptr, typename T, class U>
struct type_rebinder<Ptr<T>, U, 0u >
{
typedef Ptr<U> type;
};
#else //C++03 compilers #else //C++03 compilers
#define BOOST_PP_LOCAL_MACRO(n) \ #define BOOST_PP_LOCAL_MACRO(n) \