Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 08:50:04

0001 // Boost.Range library
0002 //
0003 //  Copyright Eric Niebler 2014. Use, modification and
0004 //  distribution is subject to the Boost Software License, Version
0005 //  1.0. (See accompanying file LICENSE_1_0.txt or copy at
0006 //  http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 // For more information, see http://www.boost.org/libs/range/
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 #include <boost/mpl/bool.hpp>
0024 
0025 namespace boost
0026 {
0027 namespace cb_details
0028 {
0029     template <class Buff, class Traits>
0030     struct iterator;
0031 }
0032 
0033 namespace python
0034 {
0035     template <class Container
0036               , class NextPolicies /*= objects::default_iterator_call_policies*/>
0037     struct iterator;
0038 }
0039 
0040 namespace type_erasure
0041 {
0042     template<
0043         class Traversal,
0044         class T                 /*= _self*/,
0045         class Reference         /*= ::boost::use_default*/,
0046         class DifferenceType    /*= ::std::ptrdiff_t*/,
0047         class ValueType         /*= typename deduced<iterator_value_type<T> >::type*/
0048     >
0049     struct iterator;
0050 }
0051 
0052 namespace unordered { namespace iterator_detail
0053 {
0054     template <typename Node>
0055     struct iterator;
0056 }}
0057 
0058 namespace container { namespace container_detail
0059 {
0060     template<class IIterator, bool IsConst>
0061     class iterator;
0062 }}
0063 
0064 namespace spirit { namespace lex { namespace lexertl
0065 {
0066     template <typename Functor>
0067     class iterator;
0068 }}}
0069 
0070 namespace range_detail
0071 {
0072     template <class Buff, class Traits>
0073     struct has_iterator< ::boost::cb_details::iterator<Buff, Traits> >
0074       : mpl::false_
0075     {};
0076 
0077     template <class Buff, class Traits>
0078     struct has_iterator< ::boost::cb_details::iterator<Buff, Traits> const>
0079       : mpl::false_
0080     {};
0081 
0082     template <class Container, class NextPolicies>
0083     struct has_iterator< ::boost::python::iterator<Container, NextPolicies> >
0084       : mpl::false_
0085     {};
0086 
0087     template <class Container, class NextPolicies>
0088     struct has_iterator< ::boost::python::iterator<Container, NextPolicies> const>
0089       : mpl::false_
0090     {};
0091 
0092     template<class Traversal, class T, class Reference, class DifferenceType, class ValueType>
0093     struct has_iterator< ::boost::type_erasure::iterator<Traversal, T, Reference, DifferenceType, ValueType> >
0094       : mpl::false_
0095     {};
0096 
0097     template<class Traversal, class T, class Reference, class DifferenceType, class ValueType>
0098     struct has_iterator< ::boost::type_erasure::iterator<Traversal, T, Reference, DifferenceType, ValueType> const>
0099       : mpl::false_
0100     {};
0101 
0102     template <typename Node>
0103     struct has_iterator< ::boost::unordered::iterator_detail::iterator<Node> >
0104       : mpl::false_
0105     {};
0106 
0107     template <typename Node>
0108     struct has_iterator< ::boost::unordered::iterator_detail::iterator<Node> const>
0109       : mpl::false_
0110     {};
0111 
0112     template<class IIterator, bool IsConst>
0113     struct has_iterator< ::boost::container::container_detail::iterator<IIterator, IsConst> >
0114       : mpl::false_
0115     {};
0116 
0117     template<class IIterator, bool IsConst>
0118     struct has_iterator< ::boost::container::container_detail::iterator<IIterator, IsConst> const>
0119       : mpl::false_
0120     {};
0121 
0122     template <typename Functor>
0123     struct has_iterator< ::boost::spirit::lex::lexertl::iterator<Functor> >
0124       : mpl::false_
0125     {};
0126 
0127     template <typename Functor>
0128     struct has_iterator< ::boost::spirit::lex::lexertl::iterator<Functor> const>
0129       : mpl::false_
0130     {};
0131 }
0132 }
0133 #endif
0134 #endif