Merged revisions 49228 via svnmerge from

https://svn.boost.org/svn/boost/trunk

........
  r49228 | nmusatti | 2008-10-09 17:06:06 -0500 (Thu, 09 Oct 2008) | 1 line
  
  Applied patch from ticket #2345
........


[SVN r49266]
This commit is contained in:
Aleksey Gurtovoy
2008-10-11 06:06:10 +00:00
parent 240607a350
commit 5980a45b30
17 changed files with 58 additions and 22 deletions

View File

@@ -177,6 +177,31 @@ struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
# define j_ BOOST_PP_FRAME_ITERATION(2) # define j_ BOOST_PP_FRAME_ITERATION(2)
#if (i_ == 0) && (j_ == 0) && BOOST_WORKAROUND( __BORLANDC__, >= 0x590) && !defined( BOOST_MPL_CFG_NO_HAS_APPLY)
template< typename F, bool F_has_apply >
struct apply_wrap_impl0_bcb {
typedef typename F::template apply< na > type;
};
template< typename F >
struct apply_wrap_impl0_bcb< F, true > {
typedef typename F::apply type;
};
template<
typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
>
struct BOOST_PP_CAT(apply_wrap_impl,i_)<
BOOST_MPL_PP_ADD(i_, j_)
, F
BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
>
{
typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type;
};
#else
template< template<
typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
> >
@@ -198,6 +223,8 @@ struct BOOST_PP_CAT(apply_wrap_impl,i_)<
> type; > type;
}; };
#endif
# undef j_ # undef j_
#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_ITERATION_DEPTH()

View File

@@ -35,7 +35,7 @@
#include <cstddef> #include <cstddef>
#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| (BOOST_MPL_CFG_GCC != 0) \ || (BOOST_MPL_CFG_GCC != 0) \
|| BOOST_WORKAROUND(__IBMCPP__, <= 600) || BOOST_WORKAROUND(__IBMCPP__, <= 600)
# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES # define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
@@ -43,7 +43,7 @@
#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \ #if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
|| BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
|| BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER # define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
#endif #endif
@@ -51,7 +51,7 @@
// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants) // agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants)
// and GCC (which issues "unused variable" warnings when static constants are used // and GCC (which issues "unused variable" warnings when static constants are used
// at a function scope) // at a function scope)
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| (BOOST_MPL_CFG_GCC != 0) || (BOOST_MPL_CFG_GCC != 0)
# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr } # define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
#else #else

View File

@@ -27,7 +27,7 @@
#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \ #if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
&& ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ && ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
|| BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
|| BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
|| BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \ || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \

View File

@@ -19,7 +19,7 @@
#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ #if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& ( BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
) )

View File

@@ -21,7 +21,7 @@
#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \ #if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|| BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
) )
# define BOOST_MPL_CFG_NO_BIND_TEMPLATE # define BOOST_MPL_CFG_NO_BIND_TEMPLATE

View File

@@ -32,7 +32,7 @@
# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) # elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
# define BOOST_MPL_CFG_COMPILER_DIR gcc # define BOOST_MPL_CFG_COMPILER_DIR gcc
# elif BOOST_WORKAROUND(__BORLANDC__, < 0x600) # elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) # if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
# define BOOST_MPL_CFG_COMPILER_DIR bcc551 # define BOOST_MPL_CFG_COMPILER_DIR bcc551
# else # else

View File

@@ -25,7 +25,7 @@
#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ #if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \ && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
&& BOOST_WORKAROUND(__BORLANDC__, < 0x600) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES # define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
@@ -35,7 +35,7 @@
#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ #if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \ && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
|| BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
) )

View File

@@ -18,7 +18,7 @@
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \ #if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& BOOST_WORKAROUND(__BORLANDC__, < 0x600) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# define BOOST_MPL_CFG_NO_NESTED_FORWARDING # define BOOST_MPL_CFG_NO_NESTED_FORWARDING

View File

@@ -19,7 +19,7 @@
#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ #if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& BOOST_WORKAROUND(__BORLANDC__, < 0x600) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS # define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS

View File

@@ -20,7 +20,7 @@
#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \ #if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \
&& ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x600) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|| BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \ || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \
|| BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \ || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \ || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \

View File

@@ -18,7 +18,7 @@
#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \ #if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \ && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
) )

View File

@@ -31,7 +31,7 @@
#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ #if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \
&& ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
|| BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
) )
# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING # define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING

View File

@@ -25,7 +25,7 @@
# include <boost/mpl/if.hpp> # include <boost/mpl/if.hpp>
# include <boost/mpl/bool.hpp> # include <boost/mpl/bool.hpp>
# include <boost/mpl/aux_/msvc_is_class.hpp> # include <boost/mpl/aux_/msvc_is_class.hpp>
#elif BOOST_WORKAROUND(__BORLANDC__, < 0x600) #elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# include <boost/mpl/if.hpp> # include <boost/mpl/if.hpp>
# include <boost/mpl/bool.hpp> # include <boost/mpl/bool.hpp>
# include <boost/mpl/aux_/yes_no.hpp> # include <boost/mpl/aux_/yes_no.hpp>
@@ -62,7 +62,7 @@ struct has_rebind
template< typename T > struct has_rebind_tag {}; template< typename T > struct has_rebind_tag {};
no_tag operator|(has_rebind_tag<int>, void const volatile*); no_tag operator|(has_rebind_tag<int>, void const volatile*);
# if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) # if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
template< typename T > template< typename T >
struct has_rebind struct has_rebind
{ {

View File

@@ -110,7 +110,7 @@ template< typename T > struct has_rebind_tag;
typedef BOOST_PP_CAT(name,_rebind) rebind; \ typedef BOOST_PP_CAT(name,_rebind) rebind; \
/**/ /**/
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# 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|( \

View File

@@ -19,7 +19,7 @@
#include <boost/mpl/aux_/na_spec.hpp> #include <boost/mpl/aux_/na_spec.hpp>
#include <boost/mpl/aux_/config/workaround.hpp> #include <boost/mpl/aux_/config/workaround.hpp>
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL # define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
#endif #endif

View File

@@ -25,7 +25,7 @@
#include <boost/mpl/aux_/config/ttp.hpp> #include <boost/mpl/aux_/config/ttp.hpp>
#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) #if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) && !BOOST_WORKAROUND( __BORLANDC__, >=0x590 )
# define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE # define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
#endif #endif
@@ -123,17 +123,26 @@ template<
struct BOOST_PP_CAT(quote,i_) struct BOOST_PP_CAT(quote,i_)
{ {
template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) #if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590 ))
{
typedef typename quote_impl<
F< BOOST_MPL_PP_PARAMS(i_, U) >
, aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
>::type type;
};
#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
: quote_impl< : quote_impl<
F< BOOST_MPL_PP_PARAMS(i_, U) > F< BOOST_MPL_PP_PARAMS(i_, U) >
, aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
> >
{
};
#else #else
: quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value > : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value >
::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > > ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > >
#endif
{ {
}; };
#endif
}; };
#undef i_ #undef i_

View File

@@ -19,7 +19,7 @@
#include <boost/mpl/aux_/na_spec.hpp> #include <boost/mpl/aux_/na_spec.hpp>
#include <boost/mpl/aux_/config/workaround.hpp> #include <boost/mpl/aux_/config/workaround.hpp>
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
# define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL # define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
#endif #endif