CharIterator< ChType > Class Template Reference
 
 
 
CharIterator< ChType > Class Template Reference

#include <maxchar.h>

Inheritance diagram for CharIterator< ChType >:
MaxHeapOperators

Class Description

template<typename ChType>
class MaxSDK::Util::CharIterator< ChType >

Iterate intelligently inside a string.

This class should be used to iterate through characters of a string. It guarantees that the string pointer never points to the end of a character. The template parameter should be either char, wchar_t, const wchar_t etc...

Public Member Functions

  CharIterator ()
  Construct this iterator with a NULL pointer.
  CharIterator (ChType *ptr)
  Construct this iterator with a string pointer.
  CharIterator (const CharIterator< ChType > &p)
  Copy an existing character iterator.
int  CharLength () const
  Gets the number of elements of the current template type, for the current character pointed to by the iterator.
CharIterator< ChType > &  operator= (const CharIterator< ChType > &p)
  Assignment operator.
CharIterator< ChType > &  operator= (ChType *ptr)
  Assignment operator.
CharIterator< ChType > &  operator++ ()
  Move to the next character.
CharIterator< ChType >  operator++ (int)
CharIterator< ChType > &  operator+= (size_t s)
  Move the iterator character forward by a specified amount.
CharIterator< ChType >  operator+ (size_t s) const
  Move the iterator character forward by a specified amount.
const Char  operator* () const
  Return the current character.
const Char  operator[] (size_t index) const
  Return the nth character from the iterator.
bool  AtEnd () const
  Determine if the iterator has reached the end of the string.
ChType *  Get () const
  Obtain the current string pointer.
const Char  Get (size_t index) const
  Return the nth character from the iterator.
  operator ChType * () const
  Obtain the current string pointer.
template<>
UtilExport int  CharLength () const
template<>
UtilExport CharIterator< char > &  operator++ ()
template<>
UtilExport CharIterator< char >  operator++ (int)
template<>
UtilExport CharIterator< char > &  operator+= (size_t s)
template<>
UtilExport CharIterator< char >  operator+ (size_t s) const
template<>
UtilExport const Char  operator* () const
template<>
UtilExport int  CharLength () const
template<>
UtilExport CharIterator< const
char > & 
operator++ ()
template<>
UtilExport CharIterator< const
char > 
operator++ (int)
template<>
UtilExport CharIterator< const
char > & 
operator+= (size_t s)
template<>
UtilExport CharIterator< const
char > 
operator+ (size_t s) const
template<>
UtilExport const Char  operator* () const
template<>
UtilExport int  CharLength () const
template<>
UtilExport CharIterator
< wchar_t > & 
operator++ ()
template<>
UtilExport CharIterator< wchar_t >  operator++ (int)
template<>
UtilExport CharIterator
< wchar_t > & 
operator+= (size_t s)
template<>
UtilExport CharIterator< wchar_t >  operator+ (size_t s) const
template<>
UtilExport const Char  operator* () const
template<>
UtilExport int  CharLength () const
template<>
UtilExport CharIterator< const
wchar_t > & 
operator++ ()
template<>
UtilExport CharIterator< const
wchar_t > 
operator++ (int)
template<>
UtilExport CharIterator< const
wchar_t > & 
operator+= (size_t s)
template<>
UtilExport CharIterator< const
wchar_t > 
operator+ (size_t s) const
template<>
UtilExport const Char  operator* () const

Protected Attributes

ChType *  _ptr

Constructor & Destructor Documentation

CharIterator ( ) [inline]

Construct this iterator with a NULL pointer.

                : _ptr(NULL)
        { }
CharIterator ( ChType *  ptr ) [inline]

Construct this iterator with a string pointer.

                : _ptr(ptr)
        { }
CharIterator ( const CharIterator< ChType > &  p ) [inline]

Copy an existing character iterator.

                : _ptr(p._ptr)
        { }

Member Function Documentation

int CharLength ( ) const

Gets the number of elements of the current template type, for the current character pointed to by the iterator.

CharIterator<ChType>& operator= ( const CharIterator< ChType > &  p ) [inline]

Assignment operator.

Copies an existing character iterator.

        {
                _ptr = p._ptr;
                return *this;
        }
CharIterator<ChType>& operator= ( ChType *  ptr ) [inline]

Assignment operator.

Copies another character as the templated type as this iterator.

        {
                _ptr = ptr;
                return *this;
        }
CharIterator<ChType>& operator++ ( )

Move to the next character.

CharIterator<ChType> operator++ ( int  )
CharIterator<ChType>& operator+= ( size_t  s )

Move the iterator character forward by a specified amount.

(It will stop at the first null character.)

CharIterator<ChType> operator+ ( size_t  s ) const

Move the iterator character forward by a specified amount.

(It will stop at the first null character.)

const Char operator* ( ) const

Return the current character.

const Char operator[] ( size_t  index ) const [inline]

Return the nth character from the iterator.

Parameters:
index - The index of the character to retrieve from the string
        {
                CharIterator<ChType> it(*this);

                it += index;
                return *it;
        }
bool AtEnd ( ) const [inline]

Determine if the iterator has reached the end of the string.

        {
                return *_ptr == 0;
        }
ChType* Get ( ) const [inline]

Obtain the current string pointer.

        {
                return _ptr;
        }
const Char Get ( size_t  index ) const [inline]

Return the nth character from the iterator.

Parameters:
index - The index of the character to retrieve from the string
        {
                CharIterator<ChType> it(*this);

                it += index;
                return *it;
        }
operator ChType * ( ) const [inline]

Obtain the current string pointer.

        {
                return _ptr;
        }
UtilExport int CharLength ( ) const
UtilExport CharIterator< char > & operator++ ( )
UtilExport CharIterator< char > operator++ ( int  )
UtilExport CharIterator< char > & operator+= ( size_t  s )
UtilExport CharIterator< char > operator+ ( size_t  s ) const
UtilExport const Char operator* ( ) const
UtilExport int CharLength ( ) const
UtilExport CharIterator< const char > & operator++ ( )
UtilExport CharIterator< const char > operator++ ( int  )
UtilExport CharIterator< const char > & operator+= ( size_t  s )
UtilExport CharIterator< const char > operator+ ( size_t  s ) const
UtilExport const Char operator* ( ) const
UtilExport int CharLength ( ) const
UtilExport CharIterator< wchar_t > & operator++ ( )
UtilExport CharIterator< wchar_t > operator++ ( int  )
UtilExport CharIterator< wchar_t > & operator+= ( size_t  s )
UtilExport CharIterator< wchar_t > operator+ ( size_t  s ) const
UtilExport const Char operator* ( ) const
UtilExport int CharLength ( ) const
UtilExport CharIterator< const wchar_t > & operator++ ( )
UtilExport CharIterator< const wchar_t > operator++ ( int  )
UtilExport CharIterator< const wchar_t > & operator+= ( size_t  s )
UtilExport CharIterator< const wchar_t > operator+ ( size_t  s ) const
UtilExport const Char operator* ( ) const

Member Data Documentation

ChType* _ptr [protected]