/*============================================================================= Copyright (c) 2003 Joel de Guzman Use, modification and distribution is subject to 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) ==============================================================================*/ #if !defined(FUSION_SEQUENCE_GENERATE_HPP) #define FUSION_SEQUENCE_GENERATE_HPP #include #include #include #include #include namespace boost { namespace fusion { namespace meta { template struct generate { typedef typename as_fusion_sequence::type seq; typedef typename detail::result_of_generate< typename meta::begin::type , typename meta::end::type >::type type; }; } template inline typename meta::generate::type generate(Sequence const& seq) { typedef as_fusion_sequence converter; return detail::generate( fusion::begin(converter::convert_const(seq)) , fusion::end(converter::convert_const(seq))); } }} #endif