SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
GenericObject< Const, ValueT > Class Template Reference

Helper class for accessing Value of object type. More...

#include <document.h>

Public Types

typedef GenericObject< true, ValueT > ConstObject
 
typedef GenericObject< false, ValueT > Object
 
typedef ValueT PlainType
 
typedef internal::MaybeAddConst< Const, PlainType >::Type ValueType
 
typedef GenericMemberIterator< Const, typename ValueT::EncodingType, typename ValueT::AllocatorType > MemberIterator
 
typedef GenericMemberIterator< true, typename ValueT::EncodingType, typename ValueT::AllocatorType > ConstMemberIterator
 
typedef ValueType::AllocatorType AllocatorType
 
typedef ValueType::StringRefType StringRefType
 
typedef ValueType::EncodingType EncodingType
 
typedef ValueType::Ch Ch
 

Public Member Functions

 GenericObject (const GenericObject &rhs)
 
GenericObjectoperator= (const GenericObject &rhs)
 
 operator ValueType & () const
 
SizeType MemberCount () const
 
SizeType MemberCapacity () const
 
bool ObjectEmpty () const
 
template<typename T >
ValueType & operator[] (T *name) const
 
template<typename SourceAllocator >
ValueType & operator[] (const GenericValue< EncodingType, SourceAllocator > &name) const
 
MemberIterator MemberBegin () const
 
MemberIterator MemberEnd () const
 
GenericObject MemberReserve (SizeType newCapacity, AllocatorType &allocator) const
 
bool HasMember (const Ch *name) const
 
template<typename SourceAllocator >
bool HasMember (const GenericValue< EncodingType, SourceAllocator > &name) const
 
MemberIterator FindMember (const Ch *name) const
 
template<typename SourceAllocator >
MemberIterator FindMember (const GenericValue< EncodingType, SourceAllocator > &name) const
 
GenericObject AddMember (ValueType &name, ValueType &value, AllocatorType &allocator) const
 
GenericObject AddMember (ValueType &name, StringRefType value, AllocatorType &allocator) const
 
template<typename T >
 RAPIDJSON_DISABLEIF_RETURN ((internal::OrExpr< internal::IsPointer< T >, internal::IsGenericValue< T > >),(ValueType &)) AddMember(ValueType &name
 
GenericObject AddMember (StringRefType name, ValueType &value, AllocatorType &allocator) const
 
GenericObject AddMember (StringRefType name, StringRefType value, AllocatorType &allocator) const
 
template<typename T >
 RAPIDJSON_DISABLEIF_RETURN ((internal::OrExpr< internal::IsPointer< T >, internal::IsGenericValue< T > >),(GenericObject)) AddMember(StringRefType name
 
void RemoveAllMembers ()
 
bool RemoveMember (const Ch *name) const
 
template<typename SourceAllocator >
bool RemoveMember (const GenericValue< EncodingType, SourceAllocator > &name) const
 
MemberIterator RemoveMember (MemberIterator m) const
 
MemberIterator EraseMember (ConstMemberIterator pos) const
 
MemberIterator EraseMember (ConstMemberIterator first, ConstMemberIterator last) const
 
bool EraseMember (const Ch *name) const
 
template<typename SourceAllocator >
bool EraseMember (const GenericValue< EncodingType, SourceAllocator > &name) const
 

Public Attributes

value
 
T AllocatorType &allocator const { value_.AddMember(name, value, allocator)
 
return * this
 

Friends

template<typename , typename >
class GenericValue
 

Detailed Description

template<bool Const, typename ValueT>
class GenericObject< Const, ValueT >

Helper class for accessing Value of object type.

Instance of this helper class is obtained by GenericValue::GetObject(). In addition to all APIs for array type, it provides range-based for loop if RAPIDJSON_HAS_CXX11_RANGE_FOR=1.