annotate DEPENDENCIES/generic/include/boost/fusion/algorithm/iteration/accumulate.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /*=============================================================================
Chris@16 2 Copyright (c) 2001-2011 Joel de Guzman
Chris@16 3
Chris@16 4 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 6 ==============================================================================*/
Chris@16 7 #if !defined(FUSION_ACCUMULATE_09172005_1032)
Chris@16 8 #define FUSION_ACCUMULATE_09172005_1032
Chris@16 9
Chris@101 10 #include <boost/fusion/support/config.hpp>
Chris@16 11 #include <boost/fusion/algorithm/iteration/accumulate_fwd.hpp>
Chris@16 12 #include <boost/fusion/algorithm/iteration/fold.hpp>
Chris@16 13 #include <boost/fusion/support/is_sequence.hpp>
Chris@16 14 #include <boost/utility/enable_if.hpp>
Chris@16 15
Chris@16 16 namespace boost { namespace fusion
Chris@16 17 {
Chris@16 18 struct void_;
Chris@16 19
Chris@16 20 namespace result_of
Chris@16 21 {
Chris@16 22 template <typename Sequence, typename State, typename F>
Chris@16 23 struct accumulate
Chris@16 24 : result_of::fold<Sequence, State, F>
Chris@16 25 {};
Chris@16 26 }
Chris@16 27
Chris@16 28 template <typename Sequence, typename State, typename F>
Chris@101 29 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 30 inline typename
Chris@16 31 lazy_enable_if<
Chris@16 32 traits::is_sequence<Sequence>
Chris@16 33 , result_of::accumulate<Sequence, State const, F>
Chris@16 34 >::type
Chris@16 35 accumulate(Sequence& seq, State const& state, F f)
Chris@16 36 {
Chris@16 37 return fusion::fold(seq, state, f);
Chris@16 38 }
Chris@16 39
Chris@16 40 template <typename Sequence, typename State, typename F>
Chris@101 41 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 42 inline typename
Chris@16 43 lazy_enable_if<
Chris@16 44 traits::is_sequence<Sequence>
Chris@16 45 , result_of::accumulate<Sequence const, State const, F>
Chris@16 46 >::type
Chris@16 47 accumulate(Sequence const& seq, State const& state, F f)
Chris@16 48 {
Chris@16 49 return fusion::fold(seq, state, f);
Chris@16 50 }
Chris@16 51 }}
Chris@16 52
Chris@16 53 #endif
Chris@16 54