Public Types | Public Member Functions | Friends | List of all members
rapidjson::GenericMemberIterator< Const, Encoding, Allocator > Class Template Reference

(Constant) member iterator for a JSON object value More...

`#include <document.h>`

Inheritance diagram for rapidjson::GenericMemberIterator< Const, Encoding, Allocator >:

## Public Types
typedef GenericMemberIterator | Iterator
| Iterator type itself.
typedef GenericMemberIterator< true, Encoding, Allocator > | ConstIterator
| Constant iterator type.
typedef GenericMemberIterator< false, Encoding, Allocator > | NonConstIterator
| Non-constant iterator type.
typedef BaseType::pointer | Pointer
| Pointer to (const) GenericMember.
typedef BaseType::reference | Reference
| Reference to (const) GenericMember.
typedef BaseType::difference_type | DifferenceType
| Signed integer type (e.g. `ptrdiff_t`)

## Public Member Functions
| GenericMemberIterator ()
| Default constructor (singular value) More...
| GenericMemberIterator (const NonConstIterator &it)
| Iterator conversions to more const. More...
Iterator & | operator= (const NonConstIterator &it)
DifferenceType | operator- (ConstIterator that) const
| Distance.
stepping
Iterator & | operator++ ()
Iterator & | operator-- ()
Iterator | operator++ (int)
Iterator | operator-- (int)
increment/decrement
Iterator | operator+ (DifferenceType n) const
Iterator | operator- (DifferenceType n) const
Iterator & | operator+= (DifferenceType n)
Iterator & | operator-= (DifferenceType n)
relations
bool | operator== (ConstIterator that) const
bool | operator!= (ConstIterator that) const
bool | operator<= (ConstIterator that) const
bool | operator>= (ConstIterator that) const
bool | operator< (ConstIterator that) const
bool | operator> (ConstIterator that) const
dereference
Reference | operator* () const
Pointer | operator-> () const
Reference | operator[] (DifferenceType n) const

## Friends
class | GenericValue< Encoding, Allocator >
template<bool , typename , typename >
class | GenericMemberIterator

## Detailed Description

### template<bool Const, typename Encoding, typename Allocator>
class rapidjson::GenericMemberIterator< Const, Encoding, Allocator >

(Constant) member iterator for a JSON object value

Template Parameters

  Const | Is this a constant iterator?
  Encoding | Encoding of the value. (Even non-string values need to have the same encoding in a document)
  Allocator | Allocator type for allocating memory of object, array and string.

This class implements a Random Access Iterator for GenericMember elements of a GenericValue, see ISO/IEC 14882:2003(E) C++ standard, 24.1 [lib.iterator.requirements].

Note
  This iterator implementation is mainly intended to avoid implicit conversions from iterator values to `NULL`, e.g. from GenericValue::FindMember.
  Define `RAPIDJSON_NOMEMBERITERATORCLASS` to fall back to a pointer-based implementation, if your platform doesn't provide the C++ <iterator> header.

See also
  GenericMember, GenericValue::MemberIterator, GenericValue::ConstMemberIterator

## Constructor & Destructor Documentation

## ◆ GenericMemberIterator() [1/2]

template<bool Const, typename Encoding , typename Allocator >

rapidjson::GenericMemberIterator< Const, Encoding, Allocator >::GenericMemberIterator | ( |  | ) |
| inline

Default constructor (singular value)

Creates an iterator pointing to no element.

Note
  All operations, except for comparisons, are undefined on such values.

## ◆ GenericMemberIterator() [2/2]

template<bool Const, typename Encoding , typename Allocator >

rapidjson::GenericMemberIterator< Const, Encoding, Allocator >::GenericMemberIterator | ( | const NonConstIterator & | it | ) |
| inline

Iterator conversions to more const.

Parameters

  it | (Non-const) iterator to copy from

Allows the creation of an iterator from another GenericMemberIterator that is "less const". Especially, creating a non-constant iterator from a constant iterator are disabled:

- const -> non-const (not ok)
- const -> const (ok)
- non-const -> const (ok)
- non-const -> non-const (ok)

Note
  If the `Const` template parameter is already `false`, this constructor effectively defines a regular copy-constructor. Otherwise, the copy constructor is implicitly defined.

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

- include/rapidjson/document.h