begin_impl.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*=============================================================================
  2. Copyright (c) 2010 Christopher Schmidt
  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_ADAPTED_ARRAY_BEGIN_IMPL_HPP
  7. #define BOOST_FUSION_ADAPTED_ARRAY_BEGIN_IMPL_HPP
  8. #include <boost/fusion/iterator/basic_iterator.hpp>
  9. namespace boost { namespace fusion { namespace extension
  10. {
  11. template<typename>
  12. struct begin_impl;
  13. template <>
  14. struct begin_impl<po_array_tag>
  15. {
  16. template <typename Seq>
  17. struct apply
  18. {
  19. typedef
  20. basic_iterator<
  21. po_array_iterator_tag
  22. , random_access_traversal_tag
  23. , Seq
  24. , 0
  25. >
  26. type;
  27. static type
  28. call(Seq& seq)
  29. {
  30. return type(seq,0);
  31. }
  32. };
  33. };
  34. }}}
  35. #endif