1 /*============================================================================= 2 Copyright (c) 2001-2011 Joel de Guzman 3 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 #if !defined(FUSION_REVERSE_07212005_1230) 8 #define FUSION_REVERSE_07212005_1230 9 10 #include <boost/fusion/support/config.hpp> 11 #include <boost/fusion/view/reverse_view/reverse_view.hpp> 12 #include <boost/fusion/support/is_sequence.hpp> 13 #include <boost/utility/enable_if.hpp> 14 15 namespace boost { namespace fusion 16 { 17 namespace result_of 18 { 19 template <typename Sequence> 20 struct reverse 21 { 22 typedef reverse_view<Sequence> type; 23 }; 24 } 25 26 template <typename Sequence> 27 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED 28 inline typename 29 enable_if< 30 traits::is_sequence<Sequence> 31 , reverse_view<Sequence const> 32 >::type 33 reverse(Sequence const& view) 34 { replace_if(Sequence const & seq,F pred,T const & new_value)35 return reverse_view<Sequence const>(view); 36 } 37 }} 38 39 #endif 40 41