1 /*==============================================================================
2 Copyright (c) 2013 Jamboree
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #ifndef BOOST_FUSION_ALGORITHM_FLATTEN_HPP_INCLUDED
8 #define BOOST_FUSION_ALGORITHM_FLATTEN_HPP_INCLUDED
11 #include <boost/fusion/view/flatten_view.hpp>
12 #include <boost/fusion/support/is_sequence.hpp>
13 #include <boost/utility/enable_if.hpp>
16 namespace boost { namespace fusion { namespace result_of
18 template<typename Sequence>
21 typedef flatten_view<Sequence> type;
25 namespace boost { namespace fusion
27 template <typename Sequence>
28 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
29 inline typename result_of::flatten<Sequence>::type
30 flatten(Sequence& view)
32 return flatten_view<Sequence>(view);
35 template <typename Sequence>
36 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
37 inline typename result_of::flatten<Sequence const>::type
38 flatten(Sequence const& view)
40 return flatten_view<Sequence const>(view);