diff --git a/include/boost/mpl/apply.hpp b/include/boost/mpl/apply.hpp index acb5179..dddaffc 100644 --- a/include/boost/mpl/apply.hpp +++ b/include/boost/mpl/apply.hpp @@ -171,7 +171,7 @@ struct apply0 : F BOOST_MPL_AUX_LAMBDA_SUPPORT(1, apply0, (F)) }; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) //: workaround for the ETI bug template<> struct apply0 @@ -259,7 +259,7 @@ struct BOOST_PP_CAT(apply,i) # endif // workarounds -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) //: workaround for ETI bug template<> struct BOOST_PP_CAT(apply,i) diff --git a/include/boost/mpl/arithmetic/divides.hpp b/include/boost/mpl/arithmetic/divides.hpp index 382a9bc..8661c24 100644 --- a/include/boost/mpl/arithmetic/divides.hpp +++ b/include/boost/mpl/arithmetic/divides.hpp @@ -41,7 +41,7 @@ struct divides_c #endif }; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) template<> struct divides_c { diff --git a/include/boost/mpl/arithmetic/modulus.hpp b/include/boost/mpl/arithmetic/modulus.hpp index 104aaad..088e441 100644 --- a/include/boost/mpl/arithmetic/modulus.hpp +++ b/include/boost/mpl/arithmetic/modulus.hpp @@ -41,7 +41,7 @@ struct modulus_c #endif }; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) template<> struct modulus_c { diff --git a/include/boost/mpl/as_sequence.hpp b/include/boost/mpl/as_sequence.hpp index 13eccc5..931d78d 100644 --- a/include/boost/mpl/as_sequence.hpp +++ b/include/boost/mpl/as_sequence.hpp @@ -35,7 +35,7 @@ struct as_sequence BOOST_MPL_AUX_LAMBDA_SUPPORT(1,as_sequence,(T)) }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct as_sequence { typedef single_view type; diff --git a/include/boost/mpl/aux_/advance_backward.hpp b/include/boost/mpl/aux_/advance_backward.hpp index 04a120e..a65df4f 100644 --- a/include/boost/mpl/aux_/advance_backward.hpp +++ b/include/boost/mpl/aux_/advance_backward.hpp @@ -103,7 +103,7 @@ struct advance_backward< BOOST_PP_FRAME_ITERATION(1) > typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type; }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) //: ETI workaround template<> struct apply { diff --git a/include/boost/mpl/aux_/advance_forward.hpp b/include/boost/mpl/aux_/advance_forward.hpp index 2a5e298..32018f6 100644 --- a/include/boost/mpl/aux_/advance_forward.hpp +++ b/include/boost/mpl/aux_/advance_forward.hpp @@ -102,7 +102,7 @@ struct advance_forward< BOOST_PP_FRAME_ITERATION(1) > typedef BOOST_PP_CAT(iter,i) type; }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) //: ETI workaround template<> struct apply { diff --git a/include/boost/mpl/aux_/back_impl.hpp b/include/boost/mpl/aux_/back_impl.hpp index d20bb9c..116bcee 100644 --- a/include/boost/mpl/aux_/back_impl.hpp +++ b/include/boost/mpl/aux_/back_impl.hpp @@ -36,7 +36,7 @@ struct back_traits template< typename Sequence > struct algorithm { typedef typename end::type iter_; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) typedef typename prior::type last_; #else typedef typename iter_::prior last_; diff --git a/include/boost/mpl/aux_/begin_end_impl.hpp b/include/boost/mpl/aux_/begin_end_impl.hpp index fb6241a..f620011 100644 --- a/include/boost/mpl/aux_/begin_end_impl.hpp +++ b/include/boost/mpl/aux_/begin_end_impl.hpp @@ -71,7 +71,7 @@ AUX_AGLORITM_TRAIT_SPEC(end, nested_begin_end_tag, typename Sequence::end) AUX_AGLORITM_TRAIT_SPEC(begin, non_sequence_tag, void_) AUX_AGLORITM_TRAIT_SPEC(end, non_sequence_tag, void_) -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) AUX_AGLORITM_TRAIT_SPEC(begin, int, int) AUX_AGLORITM_TRAIT_SPEC(end, int, int) #endif diff --git a/include/boost/mpl/aux_/config/eti.hpp b/include/boost/mpl/aux_/config/eti.hpp index e7269e8..70006b5 100644 --- a/include/boost/mpl/aux_/config/eti.hpp +++ b/include/boost/mpl/aux_/config/eti.hpp @@ -22,9 +22,9 @@ // flags for MSVC 6.5's so-called "early template instantiation bug" #if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 # if BOOST_MSVC < 1300 -# define BOOST_MPL_MSVC_ETI_BUG +# define BOOST_MPL_MSVC_60_ETI_BUG # endif -# define BOOST_MPL_MSVC_70_ETI_BUG +# define BOOST_MPL_MSVC_ETI_BUG #endif #endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/deref_wknd.hpp b/include/boost/mpl/aux_/deref_wknd.hpp index 65d579b..43d88dd 100644 --- a/include/boost/mpl/aux_/deref_wknd.hpp +++ b/include/boost/mpl/aux_/deref_wknd.hpp @@ -19,7 +19,7 @@ #include "boost/mpl/aux_/config/eti.hpp" -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) namespace boost { namespace mpl { namespace aux { diff --git a/include/boost/mpl/aux_/fold_backward_impl_body.hpp b/include/boost/mpl/aux_/fold_backward_impl_body.hpp index 19f0fae..dafa9e1 100644 --- a/include/boost/mpl/aux_/fold_backward_impl_body.hpp +++ b/include/boost/mpl/aux_/fold_backward_impl_body.hpp @@ -268,7 +268,7 @@ struct AUX_FOLD_CHUNK_NAME<-1> typedef typename res_::iterator iterator; }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) //: ETI workaround template<> struct result_ { @@ -405,7 +405,7 @@ struct AUX_FOLD_CHUNK_NAME typedef BOOST_PP_CAT(iter,i) iterator; }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) //: ETI workaround template<> struct result_ { diff --git a/include/boost/mpl/aux_/fold_impl_body.hpp b/include/boost/mpl/aux_/fold_impl_body.hpp index 3e0546f..a8ba02d 100644 --- a/include/boost/mpl/aux_/fold_impl_body.hpp +++ b/include/boost/mpl/aux_/fold_impl_body.hpp @@ -254,7 +254,7 @@ struct AUX_FOLD_CHUNK_NAME<-1> typedef typename res_::iterator iterator; }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) //: ETI workaround template<> struct result_ { @@ -363,7 +363,7 @@ struct AUX_FOLD_CHUNK_NAME typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) iterator; }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) //: ETI workaround template<> struct result_ { diff --git a/include/boost/mpl/aux_/template_arity.hpp b/include/boost/mpl/aux_/template_arity.hpp index 502e01c..d2df274 100644 --- a/include/boost/mpl/aux_/template_arity.hpp +++ b/include/boost/mpl/aux_/template_arity.hpp @@ -162,7 +162,7 @@ struct template_arity { }; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) template<> struct template_arity { diff --git a/include/boost/mpl/aux_/value_wknd.hpp b/include/boost/mpl/aux_/value_wknd.hpp index 7293704..6374fe9 100644 --- a/include/boost/mpl/aux_/value_wknd.hpp +++ b/include/boost/mpl/aux_/value_wknd.hpp @@ -20,7 +20,7 @@ #include "boost/mpl/aux_/config/eti.hpp" #if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ - || defined(BOOST_MPL_MSVC_ETI_BUG) + || defined(BOOST_MPL_MSVC_60_ETI_BUG) # include "boost/mpl/int_c.hpp" @@ -32,7 +32,7 @@ struct value_wknd { }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct value_wknd : int_c<0> @@ -42,7 +42,7 @@ struct value_wknd }}} // namespace boost::mpl::aux -# if !defined(BOOST_MPL_MSVC_ETI_BUG) +# if !defined(BOOST_MPL_MSVC_60_ETI_BUG) # define BOOST_MPL_AUX_VALUE_WKND(C) ::boost::mpl::aux::value_wknd< C > # define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C) # else @@ -55,6 +55,6 @@ struct value_wknd # define BOOST_MPL_AUX_VALUE_WKND(C) C # define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C -#endif // __BORLANDC__ || BOOST_MPL_MSVC_ETI_BUG +#endif // __BORLANDC__ || BOOST_MPL_MSVC_60_ETI_BUG #endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED diff --git a/include/boost/mpl/base.hpp b/include/boost/mpl/base.hpp index 69eae95..b2d31fa 100644 --- a/include/boost/mpl/base.hpp +++ b/include/boost/mpl/base.hpp @@ -33,7 +33,7 @@ struct base BOOST_MPL_AUX_LAMBDA_SUPPORT(1,base,(T)) }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct base { typedef int type; diff --git a/include/boost/mpl/is_sequence.hpp b/include/boost/mpl/is_sequence.hpp index 6eca6ad..f748e9a 100644 --- a/include/boost/mpl/is_sequence.hpp +++ b/include/boost/mpl/is_sequence.hpp @@ -87,7 +87,7 @@ struct is_sequence #endif // BOOST_MSVC -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct is_sequence : bool_c { diff --git a/include/boost/mpl/iterator_category.hpp b/include/boost/mpl/iterator_category.hpp index f69c140..36f4f56 100644 --- a/include/boost/mpl/iterator_category.hpp +++ b/include/boost/mpl/iterator_category.hpp @@ -33,7 +33,7 @@ struct iterator_category BOOST_MPL_AUX_LAMBDA_SUPPORT(1,iterator_category,(Iterator)) }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct iterator_category { typedef int type; diff --git a/include/boost/mpl/next.hpp b/include/boost/mpl/next.hpp index a700485..cb090e8 100644 --- a/include/boost/mpl/next.hpp +++ b/include/boost/mpl/next.hpp @@ -33,7 +33,7 @@ struct next BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T)) }; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) template<> struct next { typedef int type; diff --git a/include/boost/mpl/prior.hpp b/include/boost/mpl/prior.hpp index 90254a9..c236af9 100644 --- a/include/boost/mpl/prior.hpp +++ b/include/boost/mpl/prior.hpp @@ -33,7 +33,7 @@ struct prior BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T)) }; -#if defined(BOOST_MPL_MSVC_70_ETI_BUG) +#if defined(BOOST_MPL_MSVC_ETI_BUG) template<> struct prior { typedef int type; diff --git a/include/boost/mpl/select1st.hpp b/include/boost/mpl/select1st.hpp index 6c44598..0015d27 100644 --- a/include/boost/mpl/select1st.hpp +++ b/include/boost/mpl/select1st.hpp @@ -33,7 +33,7 @@ struct select1st BOOST_MPL_AUX_LAMBDA_SUPPORT(1,select1st,(Pair)) }; -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct select1st { typedef int type; diff --git a/include/boost/mpl/sequence_tag.hpp b/include/boost/mpl/sequence_tag.hpp index b191b55..30662e3 100644 --- a/include/boost/mpl/sequence_tag.hpp +++ b/include/boost/mpl/sequence_tag.hpp @@ -21,6 +21,7 @@ #include "boost/mpl/aux_/has_tag.hpp" #include "boost/mpl/aux_/has_begin.hpp" #include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/is_msvc_eti_arg.hpp" #include "boost/mpl/aux_/config/eti.hpp" #include "boost/mpl/aux_/yes_no.hpp" #include "boost/mpl/aux_/config/workaround.hpp" @@ -63,30 +64,13 @@ struct sequence_tag_impl }; }; -struct int_convertible_ -{ - int_convertible_(int); -}; - -template< typename T > -struct is_msvc_70_ETI_arg -{ - static no_tag test(...); - static yes_tag test(int_convertible_); - static T get(); - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(test(get())) == sizeof(yes_tag) - ); -}; - } // namespace aux template< typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) > struct sequence_tag - : aux::sequence_tag_impl< !aux::is_msvc_70_ETI_arg::value > + : aux::sequence_tag_impl< !aux::is_msvc_eti_arg::value > ::template result_ { }; @@ -135,7 +119,7 @@ struct sequence_tag #endif // BOOST_MSVC -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) template<> struct sequence_tag { typedef int type; diff --git a/include/boost/mpl/unique.hpp b/include/boost/mpl/unique.hpp index 0403d22..0930dae 100644 --- a/include/boost/mpl/unique.hpp +++ b/include/boost/mpl/unique.hpp @@ -76,7 +76,7 @@ struct unique >::type fold_result_; public: -#if defined(BOOST_MPL_MSVC_ETI_BUG) +#if defined(BOOST_MPL_MSVC_60_ETI_BUG) // MSVC6.5 forces us to use 'select1st::type' instead of // simple 'fold_result_::first' here typedef typename select1st::type type;