EVOLUTION-MANAGER
Edit File: nview_impl.hpp
/*============================================================================= Copyright (c) 2014 Kohei Takahashi Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #ifndef BOOST_FUSION_NVIEW_IMPL_17122014_1948 #define BOOST_FUSION_NVIEW_IMPL_17122014_1948 #include <boost/fusion/support/config.hpp> #include <boost/fusion/container/vector/detail/config.hpp> /////////////////////////////////////////////////////////////////////////////// // Without variadics, we will use the PP version /////////////////////////////////////////////////////////////////////////////// #if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) # include <boost/fusion/view/nview/detail/cpp03/nview_impl.hpp> #else /////////////////////////////////////////////////////////////////////////////// // C++11 interface /////////////////////////////////////////////////////////////////////////////// #include <boost/fusion/container/vector.hpp> #include <boost/mpl/int.hpp> namespace boost { namespace fusion { namespace result_of { template <typename Sequence, int ...I> struct as_nview { typedef vector<mpl::int_<I>...> index_type; typedef nview<Sequence, index_type> type; }; } template <int ...I, typename Sequence> BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED inline nview<Sequence, vector<mpl::int_<I>...> > as_nview(Sequence& s) { typedef vector<mpl::int_<I>...> index_type; return nview<Sequence, index_type>(s); } }} #endif #endif