diff options
Diffstat (limited to '3rdParty/Boost/src/boost/fusion/container/vector/vector_iterator.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/fusion/container/vector/vector_iterator.hpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/fusion/container/vector/vector_iterator.hpp b/3rdParty/Boost/src/boost/fusion/container/vector/vector_iterator.hpp new file mode 100644 index 0000000..8faa13a --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/container/vector/vector_iterator.hpp @@ -0,0 +1,50 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + + 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_VECTOR_ITERATOR_05042005_0635) +#define FUSION_VECTOR_ITERATOR_05042005_0635 + +#include <boost/fusion/support/iterator_base.hpp> +#include <boost/fusion/container/vector/detail/deref_impl.hpp> +#include <boost/fusion/container/vector/detail/value_of_impl.hpp> +#include <boost/fusion/container/vector/detail/next_impl.hpp> +#include <boost/fusion/container/vector/detail/prior_impl.hpp> +#include <boost/fusion/container/vector/detail/equal_to_impl.hpp> +#include <boost/fusion/container/vector/detail/distance_impl.hpp> +#include <boost/fusion/container/vector/detail/advance_impl.hpp> +#include <boost/type_traits/add_const.hpp> +#include <boost/mpl/int.hpp> + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + struct random_access_traversal_tag; + + template <typename Vector, int N> + struct vector_iterator_identity; + + template <typename Vector, int N> + struct vector_iterator : iterator_base<vector_iterator<Vector, N> > + { + typedef mpl::int_<N> index; + typedef Vector vector; + typedef vector_iterator_tag fusion_tag; + typedef random_access_traversal_tag category; + typedef vector_iterator_identity< + typename add_const<Vector>::type, N> identity; + + vector_iterator(Vector& in_vec) + : vec(in_vec) {} + Vector& vec; + + private: + // silence MSVC warning C4512: assignment operator could not be generated + vector_iterator& operator= (vector_iterator const&); + }; +}} + +#endif + |