2 #ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
3 #define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
32 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
34 #elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
40 namespace boost {
namespace mpl {
42 #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
51 template<
typename T >
struct is_sequence_impl
53 identity< aux::has_tag<T> >
54 , identity< aux::has_begin<T> >
66 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
71 , aux::is_sequence_impl<T>
75 BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
78 #elif defined(BOOST_MPL_CFG_NO_HAS_XXX)
81 typename BOOST_MPL_AUX_NA_PARAM(T)
91 typename BOOST_MPL_AUX_NA_PARAM(T)
94 : not_< is_same< typename begin<T>::type, void_ > >
96 BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
101 #if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
102 template<> struct is_sequence<int>
108 BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence)