19 #if !defined( BOLT_CL_ITERATOR_TRAITS_H )
20 #define BOLT_CL_ITERATOR_TRAITS_H
34 operator std::input_iterator_tag ( )
const
41 operator std::output_iterator_tag ( )
const
48 operator std::forward_iterator_tag ( )
const
55 operator std::bidirectional_iterator_tag ( )
const
62 operator std::random_access_iterator_tag ( )
const
79 template<
typename iterator >
82 typedef typename iterator::iterator_category memory_system;
83 typedef typename iterator::iterator_category iterator_category;
84 typedef typename iterator::value_type value_type;
85 typedef typename iterator::difference_type difference_type;
86 typedef typename iterator::pointer pointer;
87 typedef typename iterator::reference reference;
93 typedef typename std::random_access_iterator_tag iterator_category;
96 typedef int difference_type;
104 typedef typename std::random_access_iterator_tag iterator_category;
105 typedef T value_type;
107 typedef int difference_type;
108 typedef const T* pointer;
109 typedef const T& reference;
112 template<
typename Iterator>
115 typedef typename bolt::cl::iterator_traits<Iterator>::value_type type;
119 template<
typename Iterator>
122 typedef typename bolt::cl::iterator_traits<Iterator>::pointer type;
126 template<
typename Iterator>
129 typedef typename bolt::cl::iterator_traits<Iterator>::reference type;
133 template<
typename Iterator>
136 typedef typename bolt::cl::iterator_traits<Iterator>::difference_type type;
140 template<
typename Iterator>
143 typedef typename bolt::cl::iterator_traits<Iterator>::iterator_category type;
146 template<
typename Iterator>
149 typedef typename Iterator::memory_system type;