File indexing completed on 2025-01-18 09:51:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_RANGE_DETAIL_MSVC_HAS_ITERATOR_WORKAROUND_HPP
0012 #define BOOST_RANGE_DETAIL_MSVC_HAS_ITERATOR_WORKAROUND_HPP
0013
0014 #if defined(_MSC_VER)
0015 # pragma once
0016 #endif
0017
0018 #ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP
0019 # error This file should only be included from <boost/range/mutable_iterator.hpp>
0020 #endif
0021
0022 #if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
0023 namespace boost
0024 {
0025 namespace cb_details
0026 {
0027 template <class Buff, class Traits>
0028 struct iterator;
0029 }
0030
0031 namespace python
0032 {
0033 template <class Container
0034 , class NextPolicies >
0035 struct iterator;
0036 }
0037
0038 namespace type_erasure
0039 {
0040 template<
0041 class Traversal,
0042 class T ,
0043 class Reference ,
0044 class DifferenceType ,
0045 class ValueType
0046 >
0047 struct iterator;
0048 }
0049
0050 namespace unordered { namespace iterator_detail
0051 {
0052 template <typename Node>
0053 struct iterator;
0054 }}
0055
0056 namespace container { namespace container_detail
0057 {
0058 template<class IIterator, bool IsConst>
0059 class iterator;
0060 }}
0061
0062 namespace spirit { namespace lex { namespace lexertl
0063 {
0064 template <typename Functor>
0065 class iterator;
0066 }}}
0067
0068 namespace range_detail
0069 {
0070 template <class Buff, class Traits>
0071 struct has_iterator< ::boost::cb_details::iterator<Buff, Traits> >
0072 : mpl::false_
0073 {};
0074
0075 template <class Buff, class Traits>
0076 struct has_iterator< ::boost::cb_details::iterator<Buff, Traits> const>
0077 : mpl::false_
0078 {};
0079
0080 template <class Container, class NextPolicies>
0081 struct has_iterator< ::boost::python::iterator<Container, NextPolicies> >
0082 : mpl::false_
0083 {};
0084
0085 template <class Container, class NextPolicies>
0086 struct has_iterator< ::boost::python::iterator<Container, NextPolicies> const>
0087 : mpl::false_
0088 {};
0089
0090 template<class Traversal, class T, class Reference, class DifferenceType, class ValueType>
0091 struct has_iterator< ::boost::type_erasure::iterator<Traversal, T, Reference, DifferenceType, ValueType> >
0092 : mpl::false_
0093 {};
0094
0095 template<class Traversal, class T, class Reference, class DifferenceType, class ValueType>
0096 struct has_iterator< ::boost::type_erasure::iterator<Traversal, T, Reference, DifferenceType, ValueType> const>
0097 : mpl::false_
0098 {};
0099
0100 template <typename Node>
0101 struct has_iterator< ::boost::unordered::iterator_detail::iterator<Node> >
0102 : mpl::false_
0103 {};
0104
0105 template <typename Node>
0106 struct has_iterator< ::boost::unordered::iterator_detail::iterator<Node> const>
0107 : mpl::false_
0108 {};
0109
0110 template<class IIterator, bool IsConst>
0111 struct has_iterator< ::boost::container::container_detail::iterator<IIterator, IsConst> >
0112 : mpl::false_
0113 {};
0114
0115 template<class IIterator, bool IsConst>
0116 struct has_iterator< ::boost::container::container_detail::iterator<IIterator, IsConst> const>
0117 : mpl::false_
0118 {};
0119
0120 template <typename Functor>
0121 struct has_iterator< ::boost::spirit::lex::lexertl::iterator<Functor> >
0122 : mpl::false_
0123 {};
0124
0125 template <typename Functor>
0126 struct has_iterator< ::boost::spirit::lex::lexertl::iterator<Functor> const>
0127 : mpl::false_
0128 {};
0129 }
0130 }
0131 #endif
0132 #endif