Tatooine
Public Types | Public Member Functions | Private Attributes | List of all members
tatooine::gl::buffer_iterator< array_type, T > Class Template Reference

non-const buffer iterator More...

#include <buffer.h>

Collaboration diagram for tatooine::gl::buffer_iterator< array_type, T >:
[legend]

Public Types

using buffer_type = buffer< array_type, T >
 
using value_type = T
 
using reference = T &
 
using pointer = T *
 
using difference_type = std::ptrdiff_t
 
using iterator_category = std::bidirectional_iterator_tag
 

Public Member Functions

 buffer_iterator (buffer_type *buffer, std::size_t idx)
 
 buffer_iterator (buffer_iterator const &)=default
 
 buffer_iterator (buffer_iterator &&) noexcept=default
 
auto operator= (buffer_iterator const &) -> buffer_iterator &=default
 
auto operator= (buffer_iterator &&) noexcept -> buffer_iterator &=default
 
 ~buffer_iterator ()=default
 
auto operator* () const -> T
 get the buffer element the iterator refers to More...
 
auto operator== (const buffer_iterator &other) const
 are two iterators equal? More...
 
auto operator!= (const buffer_iterator &other) const
 are two iterators different? More...
 
auto operator++ () -> auto &
 pre-increment iterator More...
 
auto operator++ (int)
 post-increment iterator More...
 
auto operator-- () -> auto &
 pre-decrement iterator More...
 
auto operator-- (int)
 post-decrement iterator More...
 

Private Attributes

buffer_typem_buffer
 
std::size_t m_idx
 

Detailed Description

template<GLsizei array_type, typename T>
class tatooine::gl::buffer_iterator< array_type, T >

non-const buffer iterator

Member Typedef Documentation

◆ buffer_type

template<GLsizei array_type, typename T >
using tatooine::gl::buffer_iterator< array_type, T >::buffer_type = buffer<array_type, T>

◆ difference_type

template<GLsizei array_type, typename T >
using tatooine::gl::buffer_iterator< array_type, T >::difference_type = std::ptrdiff_t

◆ iterator_category

template<GLsizei array_type, typename T >
using tatooine::gl::buffer_iterator< array_type, T >::iterator_category = std::bidirectional_iterator_tag

◆ pointer

template<GLsizei array_type, typename T >
using tatooine::gl::buffer_iterator< array_type, T >::pointer = T*

◆ reference

template<GLsizei array_type, typename T >
using tatooine::gl::buffer_iterator< array_type, T >::reference = T&

◆ value_type

template<GLsizei array_type, typename T >
using tatooine::gl::buffer_iterator< array_type, T >::value_type = T

Constructor & Destructor Documentation

◆ buffer_iterator() [1/3]

template<GLsizei array_type, typename T >
tatooine::gl::buffer_iterator< array_type, T >::buffer_iterator ( buffer_type buffer,
std::size_t  idx 
)
inline

◆ buffer_iterator() [2/3]

template<GLsizei array_type, typename T >
tatooine::gl::buffer_iterator< array_type, T >::buffer_iterator ( buffer_iterator< array_type, T > const &  )
default

◆ buffer_iterator() [3/3]

template<GLsizei array_type, typename T >
tatooine::gl::buffer_iterator< array_type, T >::buffer_iterator ( buffer_iterator< array_type, T > &&  )
defaultnoexcept

◆ ~buffer_iterator()

template<GLsizei array_type, typename T >
tatooine::gl::buffer_iterator< array_type, T >::~buffer_iterator ( )
default

Member Function Documentation

◆ operator!=()

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator!= ( const buffer_iterator< array_type, T > &  other) const
inline

are two iterators different?

◆ operator*()

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator* ( ) const -> T
inline

get the buffer element the iterator refers to

◆ operator++() [1/2]

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator++ ( ) -> auto&
inline

pre-increment iterator

◆ operator++() [2/2]

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator++ ( int  )
inline

post-increment iterator

◆ operator--() [1/2]

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator-- ( ) -> auto&
inline

pre-decrement iterator

◆ operator--() [2/2]

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator-- ( int  )
inline

post-decrement iterator

◆ operator=() [1/2]

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator= ( buffer_iterator< array_type, T > &&  ) -> buffer_iterator &=default
defaultnoexcept

◆ operator=() [2/2]

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator= ( buffer_iterator< array_type, T > const &  ) -> buffer_iterator &=default
default

◆ operator==()

template<GLsizei array_type, typename T >
auto tatooine::gl::buffer_iterator< array_type, T >::operator== ( const buffer_iterator< array_type, T > &  other) const
inline

are two iterators equal?

Member Data Documentation

◆ m_buffer

template<GLsizei array_type, typename T >
buffer_type* tatooine::gl::buffer_iterator< array_type, T >::m_buffer
private

◆ m_idx

template<GLsizei array_type, typename T >
std::size_t tatooine::gl::buffer_iterator< array_type, T >::m_idx
private

The documentation for this class was generated from the following file: