Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
GenericMemberIterator< Const, Encoding, Allocator > Class Template Reference

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

#include <document.h>

Public Types

typedef GenericMemberIterator Iterator
 Iterator type itself.
 
typedef GenericMemberIterator< true, Encoding, AllocatorConstIterator
 Constant iterator type.
 
typedef GenericMemberIterator< false, Encoding, AllocatorNonConstIterator
 Non-constant iterator type.
 

Public Member Functions

stepping
Iteratoroperator++ ()
 
Iteratoroperator-- ()
 
Iterator operator++ (int)
 
Iterator operator-- (int)
 
increment/decrement
Iterator operator+ (DifferenceType n) const
 
Iterator operator- (DifferenceType n) const
 
Iteratoroperator+= (DifferenceType n)
 
Iteratoroperator-= (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
 

Friends

class GenericValue< Encoding, Allocator >
 
template<bool , typename , typename >
class GenericMemberIterator
 

std::iterator_traits support

typedef ValueType value_type
 
typedef ValueType * pointer
 
typedef ValueType & reference
 
typedef std::ptrdiff_t difference_type
 
typedef std::random_access_iterator_tag iterator_category
 
typedef pointer Pointer
 Pointer to (const) GenericMember.
 
typedef reference Reference
 Reference to (const) GenericMember.
 
typedef difference_type DifferenceType
 Signed integer type (e.g. ptrdiff_t)
 
 GenericMemberIterator ()
 Default constructor (singular value)
 
 GenericMemberIterator (const NonConstIterator &it)
 Iterator conversions to more const.
 
Iteratoroperator= (const NonConstIterator &it)
 

dereference

Reference operator* () const
 
Pointer operator-> () const
 
Reference operator[] (DifferenceType n) const
 
DifferenceType operator- (ConstIterator that) const
 Distance.
 

Detailed Description

template<bool Const, typename Encoding, typename Allocator>
class GenericMemberIterator< Const, Encoding, Allocator >
Template Parameters
ConstIs this a constant iterator?
EncodingEncoding of the value. (Even non-string values need to have the same encoding in a document)
AllocatorAllocator 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

Definition at line 102 of file document.h.

Member Typedef Documentation

◆ ConstIterator

template<bool Const, typename Encoding , typename Allocator >
GenericMemberIterator<true,Encoding,Allocator> GenericMemberIterator< Const, Encoding, Allocator >::ConstIterator

Definition at line 114 of file document.h.

◆ difference_type

template<bool Const, typename Encoding , typename Allocator >
std::ptrdiff_t GenericMemberIterator< Const, Encoding, Allocator >::difference_type

Definition at line 123 of file document.h.

◆ DifferenceType

template<bool Const, typename Encoding , typename Allocator >
difference_type GenericMemberIterator< Const, Encoding, Allocator >::DifferenceType

Definition at line 132 of file document.h.

◆ Iterator

template<bool Const, typename Encoding , typename Allocator >
GenericMemberIterator GenericMemberIterator< Const, Encoding, Allocator >::Iterator

Definition at line 112 of file document.h.

◆ iterator_category

template<bool Const, typename Encoding , typename Allocator >
std::random_access_iterator_tag GenericMemberIterator< Const, Encoding, Allocator >::iterator_category

Definition at line 124 of file document.h.

◆ NonConstIterator

template<bool Const, typename Encoding , typename Allocator >
GenericMemberIterator<false,Encoding,Allocator> GenericMemberIterator< Const, Encoding, Allocator >::NonConstIterator

Definition at line 116 of file document.h.

◆ Pointer

template<bool Const, typename Encoding , typename Allocator >
pointer GenericMemberIterator< Const, Encoding, Allocator >::Pointer

Definition at line 128 of file document.h.

◆ pointer

template<bool Const, typename Encoding , typename Allocator >
ValueType* GenericMemberIterator< Const, Encoding, Allocator >::pointer

Definition at line 121 of file document.h.

◆ Reference

template<bool Const, typename Encoding , typename Allocator >
reference GenericMemberIterator< Const, Encoding, Allocator >::Reference

Definition at line 130 of file document.h.

◆ reference

template<bool Const, typename Encoding , typename Allocator >
ValueType& GenericMemberIterator< Const, Encoding, Allocator >::reference

Definition at line 122 of file document.h.

◆ value_type

template<bool Const, typename Encoding , typename Allocator >
ValueType GenericMemberIterator< Const, Encoding, Allocator >::value_type

Definition at line 120 of file document.h.

Constructor & Destructor Documentation

◆ GenericMemberIterator() [1/2]

template<bool Const, typename Encoding , typename Allocator >
GenericMemberIterator< Const, Encoding, Allocator >::GenericMemberIterator ( )
inline

Creates an iterator pointing to no element.

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

Definition at line 138 of file document.h.

138: ptr_() {}

◆ GenericMemberIterator() [2/2]

template<bool Const, typename Encoding , typename Allocator >
GenericMemberIterator< Const, Encoding, Allocator >::GenericMemberIterator ( const NonConstIterator & it)
inline
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.

Definition at line 156 of file document.h.

156: ptr_(it.ptr_) {}

Member Function Documentation

◆ operator!=()

template<bool Const, typename Encoding , typename Allocator >
bool GenericMemberIterator< Const, Encoding, Allocator >::operator!= ( ConstIterator that) const
inline

Definition at line 179 of file document.h.

179{ return ptr_ != that.ptr_; }

◆ operator*()

template<bool Const, typename Encoding , typename Allocator >
Reference GenericMemberIterator< Const, Encoding, Allocator >::operator* ( ) const
inline

Definition at line 188 of file document.h.

188{ return *ptr_; }

◆ operator+()

template<bool Const, typename Encoding , typename Allocator >
Iterator GenericMemberIterator< Const, Encoding, Allocator >::operator+ ( DifferenceType n) const
inline

Definition at line 169 of file document.h.

169{ return Iterator(ptr_+n); }
GenericMemberIterator Iterator
Iterator type itself.
Definition document.h:112

◆ operator++() [1/2]

template<bool Const, typename Encoding , typename Allocator >
Iterator & GenericMemberIterator< Const, Encoding, Allocator >::operator++ ( )
inline

Definition at line 161 of file document.h.

161{ ++ptr_; return *this; }

◆ operator++() [2/2]

template<bool Const, typename Encoding , typename Allocator >
Iterator GenericMemberIterator< Const, Encoding, Allocator >::operator++ ( int )
inline

Definition at line 163 of file document.h.

163{ Iterator old(*this); ++ptr_; return old; }

◆ operator+=()

template<bool Const, typename Encoding , typename Allocator >
Iterator & GenericMemberIterator< Const, Encoding, Allocator >::operator+= ( DifferenceType n)
inline

Definition at line 172 of file document.h.

172{ ptr_+=n; return *this; }

◆ operator-() [1/2]

template<bool Const, typename Encoding , typename Allocator >
DifferenceType GenericMemberIterator< Const, Encoding, Allocator >::operator- ( ConstIterator that) const
inline

Definition at line 194 of file document.h.

194{ return ptr_-that.ptr_; }

◆ operator-() [2/2]

template<bool Const, typename Encoding , typename Allocator >
Iterator GenericMemberIterator< Const, Encoding, Allocator >::operator- ( DifferenceType n) const
inline

Definition at line 170 of file document.h.

170{ return Iterator(ptr_-n); }

◆ operator--() [1/2]

template<bool Const, typename Encoding , typename Allocator >
Iterator & GenericMemberIterator< Const, Encoding, Allocator >::operator-- ( )
inline

Definition at line 162 of file document.h.

162{ --ptr_; return *this; }

◆ operator--() [2/2]

template<bool Const, typename Encoding , typename Allocator >
Iterator GenericMemberIterator< Const, Encoding, Allocator >::operator-- ( int )
inline

Definition at line 164 of file document.h.

164{ Iterator old(*this); --ptr_; return old; }

◆ operator-=()

template<bool Const, typename Encoding , typename Allocator >
Iterator & GenericMemberIterator< Const, Encoding, Allocator >::operator-= ( DifferenceType n)
inline

Definition at line 173 of file document.h.

173{ ptr_-=n; return *this; }

◆ operator->()

template<bool Const, typename Encoding , typename Allocator >
Pointer GenericMemberIterator< Const, Encoding, Allocator >::operator-> ( ) const
inline

Definition at line 189 of file document.h.

189{ return ptr_; }

◆ operator<()

template<bool Const, typename Encoding , typename Allocator >
bool GenericMemberIterator< Const, Encoding, Allocator >::operator< ( ConstIterator that) const
inline

Definition at line 182 of file document.h.

182{ return ptr_ < that.ptr_; }

◆ operator<=()

template<bool Const, typename Encoding , typename Allocator >
bool GenericMemberIterator< Const, Encoding, Allocator >::operator<= ( ConstIterator that) const
inline

Definition at line 180 of file document.h.

180{ return ptr_ <= that.ptr_; }

◆ operator=()

template<bool Const, typename Encoding , typename Allocator >
Iterator & GenericMemberIterator< Const, Encoding, Allocator >::operator= ( const NonConstIterator & it)
inline

Definition at line 157 of file document.h.

157{ ptr_ = it.ptr_; return *this; }

◆ operator==()

template<bool Const, typename Encoding , typename Allocator >
bool GenericMemberIterator< Const, Encoding, Allocator >::operator== ( ConstIterator that) const
inline

Definition at line 178 of file document.h.

178{ return ptr_ == that.ptr_; }

◆ operator>()

template<bool Const, typename Encoding , typename Allocator >
bool GenericMemberIterator< Const, Encoding, Allocator >::operator> ( ConstIterator that) const
inline

Definition at line 183 of file document.h.

183{ return ptr_ > that.ptr_; }

◆ operator>=()

template<bool Const, typename Encoding , typename Allocator >
bool GenericMemberIterator< Const, Encoding, Allocator >::operator>= ( ConstIterator that) const
inline

Definition at line 181 of file document.h.

181{ return ptr_ >= that.ptr_; }

◆ operator[]()

template<bool Const, typename Encoding , typename Allocator >
Reference GenericMemberIterator< Const, Encoding, Allocator >::operator[] ( DifferenceType n) const
inline

Definition at line 190 of file document.h.

190{ return ptr_[n]; }

Friends And Related Symbol Documentation

◆ GenericMemberIterator

template<bool Const, typename Encoding , typename Allocator >
template<bool , typename , typename >
friend class GenericMemberIterator
friend

Definition at line 105 of file document.h.

◆ GenericValue< Encoding, Allocator >

template<bool Const, typename Encoding , typename Allocator >
friend class GenericValue< Encoding, Allocator >
friend

Definition at line 71 of file document.h.


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