mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-14 12:12:54 +02:00
Large patch from Ulrich Eckhardt to fix support for EVC++ 4.
[SVN r30670]
This commit is contained in:
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC
|
// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC
|
||||||
// (for known reasons)
|
// (for known reasons)
|
||||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE
|
# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
|
#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
|
||||||
# include <boost/mpl/has_xxx.hpp>
|
# include <boost/mpl/has_xxx.hpp>
|
||||||
#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
|
#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
# include <boost/mpl/has_xxx.hpp>
|
# include <boost/mpl/has_xxx.hpp>
|
||||||
# include <boost/mpl/if.hpp>
|
# include <boost/mpl/if.hpp>
|
||||||
# include <boost/mpl/bool.hpp>
|
# include <boost/mpl/bool.hpp>
|
||||||
@@ -43,7 +43,7 @@ namespace boost { namespace mpl { namespace aux {
|
|||||||
|
|
||||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
|
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
|
||||||
|
|
||||||
#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
|
#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
|
||||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
|
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
|
||||||
|
|
||||||
|
@@ -122,7 +122,7 @@ template< BOOST_MPL_PP_PARAMS(i,typename T) > \
|
|||||||
, name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \
|
, name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \
|
||||||
); \
|
); \
|
||||||
/**/
|
/**/
|
||||||
#elif !BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
|
#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
|
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
|
||||||
template< BOOST_MPL_PP_PARAMS(i,typename T) > \
|
template< BOOST_MPL_PP_PARAMS(i,typename T) > \
|
||||||
::boost::mpl::aux::yes_tag operator|( \
|
::boost::mpl::aux::yes_tag operator|( \
|
||||||
|
@@ -145,7 +145,7 @@ template<> struct AUX778076_OP_IMPL_NAME<integral_c_tag,na>
|
|||||||
|
|
||||||
|
|
||||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||||
&& BOOST_WORKAROUND(BOOST_MSVC, != 1200)
|
&& BOOST_WORKAROUND(BOOST_MSVC, >= 1300)
|
||||||
template< typename T > struct AUX778076_OP_TAG_NAME
|
template< typename T > struct AUX778076_OP_TAG_NAME
|
||||||
: tag<T,na>
|
: tag<T,na>
|
||||||
{
|
{
|
||||||
|
@@ -38,7 +38,7 @@ template<> struct yes_no_tag<true>
|
|||||||
|
|
||||||
template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
|
template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
|
||||||
{
|
{
|
||||||
#if !BOOST_WORKAROUND(BOOST_MSVC, == 1200)
|
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
typedef char (&type)[n];
|
typedef char (&type)[n];
|
||||||
#else
|
#else
|
||||||
char buf[n];
|
char buf[n];
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
#include <boost/mpl/aux_/config/eti.hpp>
|
#include <boost/mpl/aux_/config/eti.hpp>
|
||||||
#include <boost/mpl/aux_/config/msvc.hpp>
|
#include <boost/mpl/aux_/config/msvc.hpp>
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
# include <boost/mpl/aux_/msvc_is_class.hpp>
|
# include <boost/mpl/aux_/msvc_is_class.hpp>
|
||||||
#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
|
#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
|
||||||
# include <boost/type_traits/is_class.hpp>
|
# include <boost/type_traits/is_class.hpp>
|
||||||
@@ -63,7 +63,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct is_sequence
|
struct is_sequence
|
||||||
: if_<
|
: if_<
|
||||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
aux::msvc_is_class<T>
|
aux::msvc_is_class<T>
|
||||||
#else
|
#else
|
||||||
boost::is_class<T>
|
boost::is_class<T>
|
||||||
|
Reference in New Issue
Block a user