Ticket #2345: boost_mpl.patch

File boost_mpl.patch, 11.9 KB (added by Nicola Musatti, 14 years ago)
  • apply_wrap.hpp

     
    174174
    175175#   define j_ BOOST_PP_FRAME_ITERATION(2)
    176176
     177#if (i_ == 0) && (j_ == 0) && BOOST_WORKAROUND( __BORLANDC__, >= 0x590) && !defined( BOOST_MPL_CFG_NO_HAS_APPLY)
     178
     179template< typename F, bool F_has_apply >
     180struct apply_wrap_impl0_bcb {
     181    typedef typename F::template apply< na > type;
     182};
     183
     184template< typename F >
     185struct apply_wrap_impl0_bcb< F, true > {
     186    typedef typename F::apply type;
     187};
     188
    177189template<
    178190      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
    179191    >
     
    183195        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
    184196        >
    185197{
     198    typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type;
     199};
     200#else
     201
     202template<
     203      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
     204    >
     205struct BOOST_PP_CAT(apply_wrap_impl,i_)<
     206          BOOST_MPL_PP_ADD(i_, j_)
     207        , F
     208        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
     209        >
     210{
    186211    typedef typename F::template apply<
    187212          AUX778076_APPLY_WRAP_PARAMS(i_, T)
    188213#if i_ == 0 && j_ == 0
     
    195220        > type;
    196221};
    197222
     223#endif
     224
    198225#   undef j_
    199226
    200227#endif // BOOST_PP_IS_ITERATING
  • assert.hpp

     
    3535#include <cstddef>
    3636
    3737
    38 #if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     38#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    3939    || (BOOST_MPL_CFG_GCC != 0) \
    4040    || BOOST_WORKAROUND(__IBMCPP__, <= 600)
    4141#   define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
     
    4343
    4444#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
    4545    || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
    46     || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     46    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    4747    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
    4848#   define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
    4949#endif
     
    5151// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants)
    5252// and GCC (which issues "unused variable" warnings when static constants are used
    5353// at a function scope)
    54 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     54#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    5555    || (BOOST_MPL_CFG_GCC != 0)
    5656#   define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
    5757#else
  • aux_/config/adl.hpp

     
    2727
    2828#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
    2929    && (   BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
    30         || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     30        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    3131        || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
    3232        || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
    3333        || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
  • aux_/config/arrays.hpp

     
    1919
    2020#if    !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
    2121    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    22     && ( BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     22    && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    2323        || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
    2424        )
    2525
  • aux_/config/bind.hpp

     
    2121#if    !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
    2222    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    2323    && (   BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
    24         || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     24        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    2525        )
    2626
    2727#   define BOOST_MPL_CFG_NO_BIND_TEMPLATE
  • aux_/config/compiler.hpp

     
    3232#   elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
    3333#       define BOOST_MPL_CFG_COMPILER_DIR gcc
    3434
    35 #   elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     35#   elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    3636#       if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
    3737#           define BOOST_MPL_CFG_COMPILER_DIR bcc551
    3838#       else
  • aux_/config/dtp.hpp

     
    2525#if    !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
    2626    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    2727    && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
    28     && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     28    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    2929
    3030#   define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
    3131
     
    3535#if    !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
    3636    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    3737    && (   BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
    38         || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     38        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    3939        || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
    4040        )
    4141       
  • aux_/config/forwarding.hpp

     
    1818
    1919#if    !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
    2020    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    21     && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     21    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    2222
    2323#   define BOOST_MPL_CFG_NO_NESTED_FORWARDING
    2424
  • aux_/config/integral.hpp

     
    1919
    2020#if    !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
    2121    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    22     && BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     22    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    2323
    2424#   define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
    2525
  • aux_/config/operators.hpp

     
    2020
    2121#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \
    2222    && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
    23         || BOOST_WORKAROUND(__BORLANDC__, <= 0x600) \
     23        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    2424        || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \
    2525        || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
    2626        || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \
  • aux_/config/preprocessor.hpp

     
    1818
    1919#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
    2020    && (   BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
    21         || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
     21        || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \
    2222        || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
    2323        )
    2424
  • aux_/config/ttp.hpp

     
    3131#if    !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
    3232    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
    3333    && (   BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
    34         || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
     34        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
    3535        )
    3636
    3737#   define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
  • aux_/has_rebind.hpp

     
    2525#   include <boost/mpl/if.hpp>
    2626#   include <boost/mpl/bool.hpp>
    2727#   include <boost/mpl/aux_/msvc_is_class.hpp>
    28 #elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     28#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    2929#   include <boost/mpl/if.hpp>
    3030#   include <boost/mpl/bool.hpp>
    3131#   include <boost/mpl/aux_/yes_no.hpp>
     
    6262template< typename T > struct has_rebind_tag {};
    6363no_tag operator|(has_rebind_tag<int>, void const volatile*);
    6464
    65 #   if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     65#   if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    6666template< typename T >
    6767struct has_rebind
    6868{
  • aux_/lambda_support.hpp

     
    110110    typedef BOOST_PP_CAT(name,_rebind) rebind; \
    111111/**/
    112112
    113 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     113#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    114114#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
    115115template< BOOST_MPL_PP_PARAMS(i,typename T) > \
    116116::boost::mpl::aux::yes_tag operator|( \
  • lower_bound.hpp

     
    1919#include <boost/mpl/aux_/na_spec.hpp>
    2020#include <boost/mpl/aux_/config/workaround.hpp>
    2121
    22 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     22#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    2323#   define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
    2424#endif
    2525
  • quote.hpp

     
    2525
    2626#include <boost/mpl/aux_/config/ttp.hpp>
    2727
    28 #if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
     28#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) && !BOOST_WORKAROUND( __BORLANDC__, >=0x590 )
    2929#   define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
    3030#endif
    3131
     
    123123struct BOOST_PP_CAT(quote,i_)
    124124{
    125125    template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
    126 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     126#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590 ))
     127    {
     128        typedef typename quote_impl<
     129              F< BOOST_MPL_PP_PARAMS(i_, U) >
     130            , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
     131            >::type type;
     132    };
     133#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
    127134        : quote_impl<
    128135              F< BOOST_MPL_PP_PARAMS(i_, U) >
    129136            , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
    130137            >
     138    {
     139    };
    131140#else
    132141        : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value >
    133142            ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > >
    134 #endif
    135143    {
    136144    };
     145#endif
    137146};
    138147
    139148#undef i_
  • upper_bound.hpp

     
    1919#include <boost/mpl/aux_/na_spec.hpp>
    2020#include <boost/mpl/aux_/config/workaround.hpp>
    2121
    22 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
     22#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
    2323#   define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
    2424#endif
    2525