diff --git a/include/boost/fusion/view/nview/detail/nview_impl.hpp b/include/boost/fusion/view/nview/detail/nview_impl.hpp index 044094ff..deee9ded 100644 --- a/include/boost/fusion/view/nview/detail/nview_impl.hpp +++ b/include/boost/fusion/view/nview/detail/nview_impl.hpp @@ -10,7 +10,7 @@ #if !defined(BOOST_FUSION_NVIEW_IMPL_SEP_23_2009_1017PM) #define BOOST_FUSION_NVIEW_IMPL_SEP_23_2009_1017PM -#include +//#include #include #include #include @@ -23,8 +23,6 @@ "boost/fusion/view/nview/detail/nview_impl.hpp")) \ /**/ -#include BOOST_PP_ITERATE() - /////////////////////////////////////////////////////////////////////////////// namespace boost { namespace fusion { namespace result_of { @@ -35,12 +33,12 @@ namespace boost { namespace fusion { namespace result_of typedef mpl::vector_c< int, BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, I) > index_type; - typedef nview type; }; - }}} +#include BOOST_PP_ITERATE() + #endif /////////////////////////////////////////////////////////////////////////////// @@ -50,6 +48,18 @@ namespace boost { namespace fusion { namespace result_of #define N BOOST_PP_ITERATION() +#if N < FUSION_MAX_VECTOR_SIZE +namespace boost { namespace fusion { namespace result_of +{ + template + struct as_nview + { + typedef mpl::vector_c index_type; + typedef nview type; + }; +}}} +#endif + namespace boost { namespace fusion { template