iterate_impl_unchecked.hpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef BOOST_METAPARSE_V1_IMPL_ITERATE_IMPL_UNCHECKED_HPP
  2. #define BOOST_METAPARSE_V1_IMPL_ITERATE_IMPL_UNCHECKED_HPP
  3. // Copyright Abel Sinkovics (abel@sinkovics.hu) 2013.
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. #include <boost/metaparse/v1/impl/fwd/iterate_impl.hpp>
  8. #include <boost/metaparse/v1/get_result.hpp>
  9. #include <boost/metaparse/v1/get_remaining.hpp>
  10. #include <boost/metaparse/v1/get_position.hpp>
  11. #include <boost/mpl/push_back.hpp>
  12. namespace boost
  13. {
  14. namespace metaparse
  15. {
  16. namespace v1
  17. {
  18. namespace impl
  19. {
  20. template <int N, class P, class Accum, class S, class Pos>
  21. struct iterate_impl_unchecked :
  22. iterate_impl<
  23. N - 1,
  24. P,
  25. typename boost::mpl::push_back<
  26. Accum,
  27. typename get_result<typename P::template apply<S, Pos> >::type
  28. >::type
  29. >::template apply<
  30. typename get_remaining<typename P::template apply<S, Pos> >::type,
  31. typename get_position<typename P::template apply<S, Pos> >::type
  32. >
  33. {};
  34. }
  35. }
  36. }
  37. }
  38. #endif