25 #ifndef BOOST_PYTHON_INDEXING_ITERATOR_TRAITS_HPP 26 #define BOOST_PYTHON_INDEXING_ITERATOR_TRAITS_HPP 28 #include <indexing_suite/suite_utils.hpp> 29 #include <indexing_suite/methods.hpp> 34 #include <boost/iterator/iterator_traits.hpp> 35 #include <boost/iterator/iterator_categories.hpp> 37 namespace boost {
namespace python {
namespace indexing {
42 template<
typename Iterator>
46 typedef ::boost::detail::iterator_traits<Iterator> std_traits;
47 typedef typename std_traits::reference reference;
54 BOOST_STATIC_CONSTANT(
62 template<
typename Iterator>
65 BOOST_STATIC_CONSTANT(
76 template<
typename Iterator>
80 BOOST_STATIC_CONSTANT(
92 template<
typename Iterator>
98 BOOST_STATIC_CONSTANT(
100 supported_methods = (
101 base_class::supported_methods
104 base_class::has_mutable_ref,
114 template<
typename Iterator>
120 BOOST_STATIC_CONSTANT(
122 supported_methods = (
123 (base_class::supported_methods & ~method_iter)
126 | method_getitem_slice
129 base_class::has_mutable_ref,
131 | method_setitem_slice
139 base_class::has_mutable_ref,
146 namespace iterator_detail {
151 typedef char basic_iter_sizer[1];
152 typedef char forward_iter_sizer[2];
153 typedef char bidirectional_iter_sizer[3];
154 typedef char random_access_iter_sizer[4];
156 basic_iter_sizer &sizer (
void *);
157 forward_iter_sizer &sizer (std::forward_iterator_tag *);
158 bidirectional_iter_sizer &sizer (std::bidirectional_iterator_tag *);
159 random_access_iter_sizer &sizer (std::random_access_iterator_tag *);
163 template<
typename Iterator>
171 template<
typename Iterator>
179 template<
typename Iterator>
187 template<
typename Iterator>
193 template<
typename Iterator>
195 typedef typename ::boost::BOOST_ITERATOR_CATEGORY<Iterator>::type
198 BOOST_STATIC_CONSTANT(
199 size_t, sizer_result =
sizeof (sizer (
new category)));
203 ::BOOST_NESTED_TEMPLATE traits<Iterator>::type type;
207 template<
typename Iterator>
214 #endif // BOOST_PYTHON_INDEXING_ITERATOR_TRAITS_HPP Definition: methods.hpp:90
Definition: iterator_traits.hpp:43
Definition: python_CEGUI.h:11
Definition: suite_utils.hpp:46
Definition: iterator_traits.hpp:194
Definition: iterator_traits.hpp:115
Definition: iterator_traits.hpp:161
Definition: iterator_traits.hpp:208
Definition: iterator_traits.hpp:164
Definition: iterator_traits.hpp:77
Definition: iterator_traits.hpp:93