Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:51:17

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 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 /*= objects::default_iterator_call_policies*/>
0035     struct iterator;
0036 }
0037 
0038 namespace type_erasure
0039 {
0040     template<
0041         class Traversal,
0042         class T                 /*= _self*/,
0043         class Reference         /*= ::boost::use_default*/,
0044         class DifferenceType    /*= ::std::ptrdiff_t*/,
0045         class ValueType         /*= typename deduced<iterator_value_type<T> >::type*/
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