From a9356c09c02f145a05766a6e3dc737ce5b6c684e Mon Sep 17 00:00:00 2001 From: miloyip Date: Mon, 30 Jun 2014 19:07:58 +0800 Subject: [PATCH] Fixes IBM XL C/C++ for AIX issue Move rapidjson::GenericValue::Member to rapidjson::GenericMember https://code.google.com/p/rapidjson/issues/detail?id=64 --- include/rapidjson/document.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h index dc3533fa..a95d57fa 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.