XII Release 0.1.0
Loading...
Searching...
No Matches
xiiStringIterator Struct Reference

STL forward iterator used by all string classes. Iterates over unicode characters. The iterator starts at the first character of the string and ends at the address beyond the last character of the string. More...

#include <StringIterator.h>

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using value_type = xiiUInt32
 
using difference_type = std::ptrdiff_t
 
using pointer = const char*
 
using reference = xiiUInt32
 

Public Member Functions

 XII_DECLARE_POD_TYPE ()
 
XII_ALWAYS_INLINE xiiStringIterator ()=default
 Constructs an invalid iterator.
 
XII_FORCE_INLINE xiiStringIterator (const char *pStartPtr, const char *pEndPtr, const char *pCurPtr)
 Constructs either a begin or end iterator for the given string.
 
XII_ALWAYS_INLINE bool IsValid () const
 Checks whether this iterator points to a valid element. Invalid iterators either point to m_pEndPtr or were never initialized.
 
XII_ALWAYS_INLINE xiiUInt32 GetCharacter () const
 Returns the currently pointed to character in Utf32 encoding.
 
XII_ALWAYS_INLINE xiiUInt32 operator* () const
 Returns the currently pointed to character in Utf32 encoding.
 
XII_ALWAYS_INLINE const char * GetData () const
 Returns the address the iterator currently points to.
 
XII_ALWAYS_INLINE bool operator== (const xiiStringIterator &it2) const
 Checks whether the two iterators point to the same element.
 
XII_ALWAYS_INLINE xiiUInt32 Advance ()
 Advances the iterated to the next character, same as operator++, but returns how many bytes were consumed in the source string.
 
XII_ALWAYS_INLINE xiiStringIteratoroperator++ ()
 Move to the next Utf8 character.
 
XII_ALWAYS_INLINE xiiStringIteratoroperator-- ()
 Move to the previous Utf8 character.
 
XII_ALWAYS_INLINE xiiStringIterator operator++ (xiiInt32)
 Move to the next Utf8 character.
 
XII_ALWAYS_INLINE xiiStringIterator operator-- (xiiInt32)
 Move to the previous Utf8 character.
 
XII_FORCE_INLINE void operator+= (difference_type d)
 Advances the iterator forwards by d characters. Does not move it beyond the range's end.
 
XII_FORCE_INLINE void operator-= (difference_type d)
 Moves the iterator backwards by d characters. Does not move it beyond the range's start.
 
XII_ALWAYS_INLINE xiiStringIterator operator+ (difference_type d) const
 Returns an iterator that is advanced forwards by d characters.
 
XII_ALWAYS_INLINE xiiStringIterator operator- (difference_type d) const
 Returns an iterator that is advanced backwards by d characters.
 
void SetCurrentPosition (const char *szCurPos)
 Allows to set the 'current' iteration position to a different value.
 

Detailed Description

STL forward iterator used by all string classes. Iterates over unicode characters. The iterator starts at the first character of the string and ends at the address beyond the last character of the string.

Member Function Documentation

◆ SetCurrentPosition()

void xiiStringIterator::SetCurrentPosition ( const char * szCurPos)
inline

Allows to set the 'current' iteration position to a different value.

Must be between the iterators start and end range.


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