EVOLUTION-MANAGER
Edit File: zip_view_iterator.hpp
/*============================================================================= Copyright (c) 2001-2011 Joel de Guzman Copyright (c) 2006 Dan Marsden Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_ZIP_VIEW_ITERATOR_23012006_0814) #define FUSION_ZIP_VIEW_ITERATOR_23012006_0814 #include <boost/fusion/support/config.hpp> #include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp> #include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/view/zip_view/detail/deref_impl.hpp> #include <boost/fusion/view/zip_view/detail/next_impl.hpp> #include <boost/fusion/view/zip_view/detail/prior_impl.hpp> #include <boost/fusion/view/zip_view/detail/advance_impl.hpp> #include <boost/fusion/view/zip_view/detail/distance_impl.hpp> #include <boost/fusion/view/zip_view/detail/value_of_impl.hpp> #include <boost/fusion/view/zip_view/detail/equal_to_impl.hpp> #include <boost/fusion/container/vector/convert.hpp> namespace boost { namespace fusion { struct zip_view_iterator_tag; template< typename IteratorSequence, typename Traversal> struct zip_view_iterator : iterator_base<zip_view_iterator<IteratorSequence, Traversal> > { typedef zip_view_iterator_tag fusion_tag; typedef Traversal category; template<typename InitSeq> BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED zip_view_iterator( const InitSeq& iterator_seq) : iterators_(iterator_seq) {} typedef typename result_of::as_vector<IteratorSequence>::type iterators; iterators iterators_; }; }} #ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 namespace std { template <typename IteratorSequence, typename Traversal> struct iterator_traits< ::boost::fusion::zip_view_iterator<IteratorSequence, Traversal> > { }; } #endif #endif