Provides an iterator for use with container with contiguous storage. Use this instead of a plain pointer to prevent accidental misuse of iterators as pointers and vice versa.
References standard aliases including Container::value_type and Container::pointer, etc.
Usage:
Additional Inherited Members | |
Public Types inherited from pw::containers::internal::PtrIterator< PtrIterator< Container >, Container > | |
| using | value_type = typename Container::value_type |
| using | difference_type = std::ptrdiff_t |
| using | reference = typename std::conditional_t< std::is_const_v< Container >, typename Container::const_reference, typename Container::reference > |
| using | pointer = typename std::conditional_t< std::is_const_v< Container >, typename Container::const_pointer, typename Container::pointer > |
| using | iterator_category = containers::contiguous_iterator_tag |
Public Member Functions inherited from pw::containers::internal::PtrIterator< PtrIterator< Container >, Container > | |
| constexpr reference | operator* () const |
| constexpr pointer | operator-> () const |
| constexpr PtrIterator< Container > & | operator++ () |
| constexpr PtrIterator< Container > | operator++ (int) |
| constexpr PtrIterator< Container > & | operator-- () |
| constexpr PtrIterator< Container > | operator-- (int) |
| constexpr PtrIterator< Container > & | operator+= (difference_type n) |
| constexpr PtrIterator< Container > & | operator-= (difference_type n) |
| constexpr reference | operator[] (difference_type n) const |
Protected Member Functions inherited from pw::containers::internal::PtrIterator< PtrIterator< Container >, Container > | |
| constexpr | PtrIterator (pointer ptr) |