iter_fold_fwd.hpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*=============================================================================
  2. Copyright (c) 2011 Eric Niebler
  3. Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. ==============================================================================*/
  6. #ifndef BOOST_FUSION_ALGORITHM_ITERATION_ITER_FOLD_FWD_HPP
  7. #define BOOST_FUSION_ALGORITHM_ITERATION_ITER_FOLD_FWD_HPP
  8. namespace boost { namespace fusion
  9. {
  10. namespace result_of
  11. {
  12. template<typename Seq, typename State, typename F>
  13. struct iter_fold;
  14. }
  15. template<typename Seq, typename State, typename F>
  16. BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  17. inline typename result_of::iter_fold<
  18. Seq
  19. , State const
  20. , F
  21. >::type
  22. iter_fold(Seq& seq, State const& state, F f);
  23. template<typename Seq, typename State, typename F>
  24. BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  25. inline typename result_of::iter_fold<
  26. Seq const
  27. , State const
  28. , F
  29. >::type
  30. iter_fold(Seq const& seq, State const& state, F f);
  31. template<typename Seq, typename State, typename F>
  32. BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  33. inline typename result_of::iter_fold<
  34. Seq
  35. , State
  36. , F
  37. >::type
  38. iter_fold(Seq& seq, State& state, F f);
  39. template<typename Seq, typename State, typename F>
  40. BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  41. inline typename result_of::iter_fold<
  42. Seq const
  43. , State
  44. , F
  45. >::type
  46. iter_fold(Seq const& seq, State& state, F f);
  47. }}
  48. #endif