diff --git a/include/boost/mpl/sequence_tag.hpp b/include/boost/mpl/sequence_tag.hpp index 40fd291..e3beb43 100644 --- a/include/boost/mpl/sequence_tag.hpp +++ b/include/boost/mpl/sequence_tag.hpp @@ -27,6 +27,10 @@ namespace boost { namespace mpl { +// agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation +// on MSVC to avoid dreadful "internal structure overflow" error +#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 + namespace aux { template< bool has_tag_, bool has_begin_ > @@ -88,6 +92,19 @@ struct sequence_tag { }; +#else + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct sequence_tag +{ + typedef typename Sequence::tag type; +}; + +#endif // BOOST_MSVC + + #if defined(BOOST_MPL_MSVC_ETI_BUG) template<> struct sequence_tag {