msvc_has_iterator_workaround.hpp
Go to the documentation of this file.
1 // Boost.Range library
2 //
3 // Copyright Eric Niebler 2014. Use, modification and
4 // distribution is subject to the Boost Software License, Version
5 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //
8 // For more information, see http://www.boost.org/libs/range/
9 //
10 
11 #ifndef BOOST_RANGE_DETAIL_MSVC_HAS_ITERATOR_WORKAROUND_HPP
12 #define BOOST_RANGE_DETAIL_MSVC_HAS_ITERATOR_WORKAROUND_HPP
13 
14 #if defined(_MSC_VER)
15 # pragma once
16 #endif
17 
18 #ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP
19 # error This file should only be included from <boost/range/mutable_iterator.hpp>
20 #endif
21 
22 #if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
23 namespace boost
24 {
25 namespace cb_details
26 {
27  template <class Buff, class Traits>
28  struct iterator;
29 }
30 
31 namespace python
32 {
33  template <class Container
34  , class NextPolicies /*= objects::default_iterator_call_policies*/>
35  struct iterator;
36 }
37 
38 namespace type_erasure
39 {
40  template<
41  class Traversal,
42  class T /*= _self*/,
43  class Reference /*= ::boost::use_default*/,
44  class DifferenceType /*= ::std::ptrdiff_t*/,
45  class ValueType /*= typename deduced<iterator_value_type<T> >::type*/
46  >
47  struct iterator;
48 }
49 
50 namespace unordered { namespace iterator_detail
51 {
52  template <typename Node>
53  struct iterator;
54 }}
55 
56 namespace container { namespace container_detail
57 {
58  template<class IIterator, bool IsConst>
59  class iterator;
60 }}
61 
62 namespace spirit { namespace lex { namespace lexertl
63 {
64  template <typename Functor>
65  class iterator;
66 }}}
67 
68 namespace range_detail
69 {
70  template <class Buff, class Traits>
71  struct has_iterator< ::boost::cb_details::iterator<Buff, Traits> >
72  : mpl::false_
73  {};
74 
75  template <class Buff, class Traits>
76  struct has_iterator< ::boost::cb_details::iterator<Buff, Traits> const>
77  : mpl::false_
78  {};
79 
80  template <class Container, class NextPolicies>
81  struct has_iterator< ::boost::python::iterator<Container, NextPolicies> >
82  : mpl::false_
83  {};
84 
85  template <class Container, class NextPolicies>
86  struct has_iterator< ::boost::python::iterator<Container, NextPolicies> const>
87  : mpl::false_
88  {};
89 
90  template<class Traversal, class T, class Reference, class DifferenceType, class ValueType>
91  struct has_iterator< ::boost::type_erasure::iterator<Traversal, T, Reference, DifferenceType, ValueType> >
92  : mpl::false_
93  {};
94 
95  template<class Traversal, class T, class Reference, class DifferenceType, class ValueType>
96  struct has_iterator< ::boost::type_erasure::iterator<Traversal, T, Reference, DifferenceType, ValueType> const>
97  : mpl::false_
98  {};
99 
100  template <typename Node>
101  struct has_iterator< ::boost::unordered::iterator_detail::iterator<Node> >
102  : mpl::false_
103  {};
104 
105  template <typename Node>
106  struct has_iterator< ::boost::unordered::iterator_detail::iterator<Node> const>
107  : mpl::false_
108  {};
109 
110  template<class IIterator, bool IsConst>
111  struct has_iterator< ::boost::container::container_detail::iterator<IIterator, IsConst> >
112  : mpl::false_
113  {};
114 
115  template<class IIterator, bool IsConst>
116  struct has_iterator< ::boost::container::container_detail::iterator<IIterator, IsConst> const>
117  : mpl::false_
118  {};
119 
120  template <typename Functor>
121  struct has_iterator< ::boost::spirit::lex::lexertl::iterator<Functor> >
122  : mpl::false_
123  {};
124 
125  template <typename Functor>
126  struct has_iterator< ::boost::spirit::lex::lexertl::iterator<Functor> const>
127  : mpl::false_
128  {};
129 }
130 }
131 #endif
132 #endif
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
bool_< false > false_
Definition: bool_fwd.hpp:25


librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:47:22