Main Page glibmm Namespaces Book

# Glib::ustring_Iterator<T> Class Template Reference

The iterator type of Glib::ustring. More...

List of all members.

## Public Types

typedef std::bidirectional_iterator_tag | iterator_category
typedef gunichar | value_type
typedef std::string::difference_type | difference_type
typedef value_type | reference
typedef void | pointer

## Public Member Functions

| ustring_Iterator ()
| ustring_Iterator (const ustring_Iterator<std::string::iterator>& other)
value_type | operator* () const
ustring_Iterator<T>& | operator++ ()
const ustring_Iterator<T> | operator++ (int)
ustring_Iterator<T>& | operator-- ()
const ustring_Iterator<T> | operator-- (int)
| ustring_Iterator (T pos)
T | base () const

## Related Functions

(Note that these are not member functions.)
template<class T>
bool | operator== (const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
template<class T>
bool | operator!= (const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
template<class T>
bool | operator< (const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
template<class T>
bool | operator> (const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
template<class T>
bool | operator<= (const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
template<class T>
bool | operator>= (const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)

## Detailed Description

### template <class T>
class Glib::ustring_Iterator< T >

The iterator type of Glib::ustring.

Note this is not a random access iterator but a bidirectional one, since all index operations need to iterate over the UTF-8 data. Use std::advance() to move to a certain position. However, all of the relational operators are available: `== != < > <= >=`

A writeable iterator isn't provided because: The number of bytes of the old UTF-8 character and the new one to write could be different. Therefore, any write operation would invalidate all other iterators pointing into the same string.

## Member Typedef Documentation

template <class T>

typedef std::bidirectional_iterator_tag Glib::ustring_Iterator<T>::iterator_category

template <class T>

typedef gunichar Glib::ustring_Iterator<T>::value_type

template <class T>

typedef std::string::difference_type Glib::ustring_Iterator<T>::difference_type

template <class T>

typedef value_type Glib::ustring_Iterator<T>::reference

template <class T>

typedef void Glib::ustring_Iterator<T>::pointer

## Constructor & Destructor Documentation

template <class T>

Glib::ustring_Iterator<T>::ustring_Iterator | ( |  | ) | `[inline]`

template <class T>

Glib::ustring_Iterator<T>::ustring_Iterator | ( | const ustring_Iterator<std::string::iterator>& | other | ) | `[inline]`

template <class T>

Glib::ustring_Iterator<T>::ustring_Iterator | ( | T | pos | ) | `[inline, explicit]`

## Member Function Documentation

template <class T>

value_type Glib::ustring_Iterator<T>::operator* | ( |  | ) | const`[inline]`

template <class T>

ustring_Iterator<T>& Glib::ustring_Iterator<T>::operator++ | ( |  | ) | `[inline]`

template <class T>

const ustring_Iterator<T> Glib::ustring_Iterator<T>::operator++ | ( | int |  | ) | `[inline]`

template <class T>

ustring_Iterator<T>& Glib::ustring_Iterator<T>::operator-- | ( |  | ) | `[inline]`

template <class T>

const ustring_Iterator<T> Glib::ustring_Iterator<T>::operator-- | ( | int |  | ) | `[inline]`

template <class T>

T Glib::ustring_Iterator<T>::base | ( |  | ) | const`[inline]`

Referenced by Glib::ustring_Iterator<T>::operator!=(), Glib::ustring_Iterator<T>::operator==(), Glib::ustring_Iterator<T>::operator>(), and Glib::ustring_Iterator<T>::operator>=().

## Friends And Related Function Documentation

template <class T>

bool operator== | ( | const ustring_Iterator<T>& | lhs,
|  | const ustring_Iterator<T>& | rhs |
| ) |  |  | `[related]`

References Glib::ustring_Iterator<T>::base().

template <class T>

bool operator!= | ( | const ustring_Iterator<T>& | lhs,
|  | const ustring_Iterator<T>& | rhs |
| ) |  |  | `[related]`

References Glib::ustring_Iterator<T>::base().

template <class T>

bool operator< | ( | const ustring_Iterator<T>& | lhs,
|  | const ustring_Iterator<T>& | rhs |
| ) |  |  | `[related]`

template <class T>

bool operator> | ( | const ustring_Iterator<T>& | lhs,
|  | const ustring_Iterator<T>& | rhs |
| ) |  |  | `[related]`

References Glib::ustring_Iterator<T>::base().

template <class T>

bool operator<= | ( | const ustring_Iterator<T>& | lhs,
|  | const ustring_Iterator<T>& | rhs |
| ) |  |  | `[related]`

template <class T>

bool operator>= | ( | const ustring_Iterator<T>& | lhs,
|  | const ustring_Iterator<T>& | rhs |
| ) |  |  | `[related]`

References Glib::ustring_Iterator<T>::base().

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

- ustring.h