MRPT  2.0.0
List of all members | Public Types | Public Member Functions | Private Types | Private Attributes
mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE > Class Template Reference

Detailed Description

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE, typename POINTER, typename REFERENCE>
class mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >

Definition at line 64 of file vector_with_small_size_optimization.h.

#include <mrpt/containers/vector_with_small_size_optimization.h>

Public Types

using value_type = TYPE
 
using reference = REFERENCE
 
using pointer = POINTER
 
using iterator_category = std::random_access_iterator_tag
 
using difference_type = typename large_vec::difference_type
 

Public Member Functions

 iteratorImpl ()=default
 
 iteratorImpl (STORAGE ptr)
 
self operator++ ()
 
self operator-- ()
 
self operator++ (int)
 
self operator-- (int)
 
self operator+ (difference_type n)
 
self operator- (difference_type n)
 
self operator+= (difference_type n)
 
self operator-= (difference_type n)
 
difference_type operator- (const self &o) const
 
REFERENCE operator* ()
 
const REFERENCE operator* () const
 
POINTER operator-> ()
 
const POINTER operator-> () const
 
bool operator== (const self &o)
 
bool operator!= (const self &o)
 

Private Types

using STORAGE = std::conditional_t< std::is_same_v< POINTER, bool * >, UnspecializedBool *, std::conditional_t< std::is_same_v< POINTER, const bool * >, const UnspecializedBool *, POINTER > >
 
using self = iteratorImpl< TYPE, POINTER, REFERENCE >
 

Private Attributes

STORAGE m_ptr {nullptr}
 

Member Typedef Documentation

◆ difference_type

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::difference_type = typename large_vec::difference_type

Definition at line 78 of file vector_with_small_size_optimization.h.

◆ iterator_category

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::iterator_category = std::random_access_iterator_tag

Definition at line 77 of file vector_with_small_size_optimization.h.

◆ pointer

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::pointer = POINTER

Definition at line 76 of file vector_with_small_size_optimization.h.

◆ reference

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::reference = REFERENCE

Definition at line 75 of file vector_with_small_size_optimization.h.

◆ self

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::self = iteratorImpl<TYPE, POINTER, REFERENCE>
private

Definition at line 71 of file vector_with_small_size_optimization.h.

◆ STORAGE

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::STORAGE = std::conditional_t< std::is_same_v<POINTER, bool*>, UnspecializedBool*, std::conditional_t< std::is_same_v<POINTER, const bool*>, const UnspecializedBool*, POINTER> >
private

Definition at line 70 of file vector_with_small_size_optimization.h.

◆ value_type

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::value_type = TYPE

Definition at line 74 of file vector_with_small_size_optimization.h.

Constructor & Destructor Documentation

◆ iteratorImpl() [1/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::iteratorImpl ( )
default

◆ iteratorImpl() [2/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::iteratorImpl ( STORAGE  ptr)
inline

Definition at line 80 of file vector_with_small_size_optimization.h.

Member Function Documentation

◆ operator!=()

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
bool mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator!= ( const self o)
inline

◆ operator*() [1/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
REFERENCE mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator* ( void  )
inline

◆ operator*() [2/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
const REFERENCE mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator* ( void  ) const
inline

◆ operator+()

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator+ ( difference_type  n)
inline

◆ operator++() [1/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator++ ( int  )
inline

◆ operator+=()

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator+= ( difference_type  n)
inline

◆ operator-() [1/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator- ( difference_type  n)
inline

◆ operator-() [2/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
difference_type mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator- ( const self o) const
inline

◆ operator--() [1/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator-- ( int  )
inline

◆ operator-=()

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
self mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator-= ( difference_type  n)
inline

◆ operator->() [1/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
POINTER mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator-> ( )
inline

◆ operator->() [2/2]

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
const POINTER mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator-> ( ) const
inline

◆ operator==()

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
bool mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::operator== ( const self o)
inline

Member Data Documentation

◆ m_ptr

template<typename VAL, size_t small_size, size_t alignment = 16>
template<typename TYPE , typename POINTER , typename REFERENCE >
STORAGE mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iteratorImpl< TYPE, POINTER, REFERENCE >::m_ptr {nullptr}
private



Page generated by Doxygen 1.8.14 for MRPT 2.0.0 Git: b38439d21 Tue Mar 31 19:58:06 2020 +0200 at miƩ abr 1 00:50:30 CEST 2020