diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h index dc3533f..a95d57f 100644 --- a/include/rapidjson/document.h +++ b/include/rapidjson/document.h @@ -12,6 +12,22 @@ namespace rapidjson { +// Forward declaration. +template +class GenericValue; + +//! Name-value pair in an object. +/*! + This class was internal to GenericValue. It used to be a inner struct. + But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct. + https://code.google.com/p/rapidjson/issues/detail?id=64 +*/ +template +struct GenericMember { + GenericValue name; //!< name of member (must be a string) + GenericValue value; //!< value of member. +}; + /////////////////////////////////////////////////////////////////////////////// // GenericValue @@ -30,11 +46,7 @@ template > class GenericValue { public: //! Name-value pair in an object. - struct Member { - GenericValue name; //!< name of member (must be a string) - GenericValue value; //!< value of member. - }; - + typedef GenericMember Member; typedef Encoding EncodingType; //!< Encoding type from template parameter. typedef Allocator AllocatorType; //!< Allocator type from template parameter. typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding.