46 template <
typename,
typename,
typename,
typename,
typename>
49 template <
typename T,
typename Category = std::b
idirectional_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = const T*,
typename Reference = const T&>
73 virtual bool operator==(
const self_type& aOther)
const = 0;
74 virtual bool operator!=(
const self_type& aOther)
const = 0;
76 virtual self_type*
clone(
void* memory)
const = 0;
78 virtual self_type* do_post_increment(
void* memory) = 0;
79 virtual self_type* do_post_decrement(
void* memory) = 0;
82 template <
typename,
typename,
typename,
typename,
typename>
85 template <
typename T,
typename Category = std::random_access_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = const T*,
typename Reference = const T&>
111 virtual bool operator<(
const self_type& aOther)
const = 0;
113 virtual bool operator>(
const self_type& aOther)
const = 0;
116 virtual self_type* do_add(
void* memory,
difference_type aDifference)
const = 0;
117 virtual self_type* do_subtract(
void* memory,
difference_type aDifference)
const = 0;
120 template <
typename,
typename,
typename,
typename,
typename>
122 template <
typename,
typename,
typename,
typename,
typename>
125 template <
typename T,
typename Category = std::b
idirectional_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = const T*,
typename Reference = const T&>
144 aWrappedIterator->clone(
storage());
222 mutable std::aligned_storage<
sizeof(
void*) * 10>::type
iStorage;
225 template <
typename,
typename,
typename,
typename,
typename>
228 template <
typename T,
typename Category = std::random_access_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = const T*,
typename Reference = const T&>
301 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
303 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
305 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
309 do_add(result.
storage(), aDifference);
312 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
316 do_subtract(result.
storage(), aDifference);
320 template <
typename,
typename,
typename,
typename,
typename>
323 template <
typename T,
typename Category = std::b
idirectional_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = T*,
typename Reference = T&>
351 virtual self_type*
clone(
void* memory)
const = 0;
354 virtual self_type* do_post_increment(
void* memory) = 0;
355 virtual self_type* do_post_decrement(
void* memory) = 0;
358 template <
typename,
typename,
typename,
typename,
typename>
361 template <
typename T,
typename Category = std::random_access_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = T*,
typename Reference = T&>
387 virtual bool operator<(
const self_type& aOther)
const = 0;
389 virtual bool operator>(
const self_type& aOther)
const = 0;
392 virtual self_type* do_add(
void* memory,
difference_type aDifference)
const = 0;
393 virtual self_type* do_subtract(
void* memory,
difference_type aDifference)
const = 0;
396 template <
typename T,
typename Category = std::b
idirectional_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = T*,
typename Reference = T&>
416 aWrappedIterator->clone(
storage());
481 mutable std::aligned_storage<
sizeof(
void*) * 10>::type
iStorage;
484 template <
typename T,
typename Category = std::random_access_iterator_tag,
typename Difference = std::ptrdiff_t,
typename Po
inter = T*,
typename Reference = T&>
539 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
541 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
543 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
547 do_add(result.
storage(), aDifference);
550 template <
typename T,
typename Category,
typename Difference,
typename Po
inter,
typename Reference>
554 do_subtract(result.
storage(), aDifference);
const_iterator(abstract_iterator *aWrappedIterator)
const_iterator(const iterator< T, Category, Difference, T *, T & > &aOther)
abstract_iterator * clone(void *memory) const
abstract_iterator & operator++()
bool operator==(const self_type &aOther) const
Difference difference_type
Category iterator_category
i_const_iterator< T, Category, Difference, Pointer, Reference > abstract_const_iterator
std::aligned_storage< sizeof(void *) *10 >::type iStorage
self_type & operator=(const iterator< T, Category, Difference, T *, T & > &aOther)
pointer operator->() const
i_const_iterator< T, Category, Difference, Pointer, Reference > abstract_iterator
self_type operator++(int)
bool operator!=(const self_type &aOther) const
abstract_iterator & wrapped_iterator() const
abstract_iterator & operator--()
self_type & operator=(const self_type &aOther)
self_type operator--(int)
const_iterator(const i_iterator< T, Category, Difference, T *, T & > &aOther)
reference operator*() const
const_iterator(const self_type &aOther)
virtual self_type & operator--()=0
virtual reference operator*() const =0
virtual bool operator!=(const self_type &aOther) const =0
abstract_iterator abstract_base_iterator
Category iterator_category
const_iterator< T, Category, Difference, Pointer, Reference > iterator_wrapper
virtual self_type & operator++()=0
abstract_const_iterator abstract_base_const_iterator
virtual self_type * clone(void *memory) const =0
iterator_wrapper operator++(int)
virtual bool operator==(const self_type &aOther) const =0
self_type abstract_const_iterator
iterator_wrapper operator--(int)
Difference difference_type
virtual pointer operator->() const =0
self_type abstract_iterator
virtual reference operator*() const =0
virtual self_type * clone(void *memory) const =0
iterator< T, Category, Difference, Pointer, Reference > iterator_wrapper
Category iterator_category
virtual self_type & operator--()=0
self_type abstract_iterator
virtual abstract_const_iterator * const_clone(void *memory) const =0
iterator_wrapper operator++(int)
virtual self_type & operator++()=0
i_const_iterator< T, Category, Difference, const T *, const T & > abstract_const_iterator
Difference difference_type
abstract_iterator abstract_base_iterator
virtual pointer operator->() const =0
iterator_wrapper operator--(int)
virtual bool operator!=(const self_type &aOther) const =0
abstract_const_iterator abstract_base_const_iterator
virtual bool operator==(const self_type &aOther) const =0
virtual self_type & operator-=(difference_type aDifference)=0
virtual bool operator>(const self_type &aOther) const =0
random_access_const_iterator< T, Category, Difference, Pointer, Reference > iterator_wrapper
virtual bool operator>=(const self_type &aOther) const =0
virtual bool operator<(const self_type &aOther) const =0
virtual reference operator[](difference_type aDifference) const =0
virtual self_type & operator+=(difference_type aDifference)=0
abstract_const_iterator abstract_random_access_const_iterator
virtual difference_type operator-(const self_type &aOther) const =0
abstract_iterator abstract_random_access_iterator
self_type abstract_const_iterator
i_const_iterator< T, Category, Difference, Pointer, Reference > base_type
self_type abstract_iterator
Difference difference_type
iterator_wrapper operator+(difference_type aDifference) const
virtual bool operator<=(const self_type &aOther) const =0
iterator_wrapper operator-(difference_type aDifference) const
virtual self_type & operator+=(difference_type aDifference)=0
virtual bool operator>=(const self_type &aOther) const =0
iterator_wrapper operator+(difference_type aDifference) const
virtual difference_type operator-(const self_type &aOther) const =0
virtual bool operator<(const self_type &aOther) const =0
iterator_wrapper operator-(difference_type aDifference) const
random_access_iterator< T, Category, Difference, Pointer, Reference > iterator_wrapper
abstract_iterator abstract_random_access_iterator
i_random_access_const_iterator< T, Category, Difference, const T *, const T & > abstract_const_iterator
virtual reference operator[](difference_type aDifference) const =0
Difference difference_type
abstract_const_iterator abstract_random_access_const_iterator
virtual self_type & operator-=(difference_type aDifference)=0
virtual bool operator>(const self_type &aOther) const =0
self_type abstract_iterator
virtual bool operator<=(const self_type &aOther) const =0
abstract_iterator & wrapped_iterator() const
Category iterator_category
i_const_iterator< T, Category, Difference, const T *, const T & > abstract_const_iterator
self_type operator++(int)
std::aligned_storage< sizeof(void *) *10 >::type iStorage
abstract_iterator & operator--()
Difference difference_type
abstract_iterator & operator++()
reference operator*() const
bool operator!=(const self_type &aOther) const
i_iterator< T, Category, Difference, Pointer, Reference > abstract_type
bool operator==(const self_type &aOther) const
iterator(abstract_iterator *aWrappedIterator)
abstract_iterator * clone(void *memory) const
self_type operator--(int)
iterator(const self_type &aOther)
abstract_type abstract_iterator
pointer operator->() const
self_type & operator=(const self_type &aOther)
abstract_const_iterator * const_clone(void *memory) const
random_access_const_iterator(const self_type &aOther)
bool operator<=(const self_type &aOther) const
random_access_const_iterator(const iterator< T, Category, Difference, T *, T & > &aOther)
bool operator<(const self_type &aOther) const
self_type operator-(difference_type aDifference) const
abstract_type abstract_const_iterator
bool operator>=(const self_type &aOther) const
self_type operator+(difference_type aDifference) const
difference_type operator-(const self_type &aOther) const
random_access_const_iterator(abstract_iterator *aWrappedIterator)
self_type & operator=(const self_type &aOther)
self_type & operator=(const iterator< T, Category, Difference, T *, T & > &aOther)
Difference difference_type
random_access_const_iterator(const i_random_access_iterator< T, Category, Difference, T *, T & > &aOther)
abstract_type abstract_iterator
reference operator[](difference_type aDifference) const
self_type & operator=(const i_random_access_iterator< T, Category, Difference, T *, T & > &aOther)
bool operator>(const self_type &aOther) const
i_random_access_const_iterator< T, Category, Difference, Pointer, Reference > abstract_type
abstract_iterator & operator+=(difference_type aDifference)
abstract_iterator & wrapped_iterator() const
~random_access_const_iterator()
abstract_iterator & operator-=(difference_type aDifference)
random_access_const_iterator()
difference_type operator-(const self_type &aOther) const
~random_access_iterator()
abstract_type abstract_iterator
bool operator>(const self_type &aOther) const
abstract_iterator & operator-=(difference_type aDifference)
Difference difference_type
reference operator[](difference_type aDifference) const
i_random_access_const_iterator< T, Category, Difference, const T *, const T & > abstract_const_iterator
self_type & operator=(const self_type &aOther)
random_access_iterator(abstract_iterator *aWrappedIterator)
bool operator>=(const self_type &aOther) const
self_type operator+(difference_type aDifference) const
random_access_iterator(const self_type &aOther)
abstract_iterator & operator+=(difference_type aDifference)
bool operator<(const self_type &aOther) const
bool operator<=(const self_type &aOther) const
self_type operator-(difference_type aDifference) const
abstract_iterator & wrapped_iterator() const
i_random_access_iterator< T, Category, Difference, Pointer, Reference > abstract_type