diff --git a/doc/jsoncpp.dox b/doc/jsoncpp.dox index 563590c..bf29778 100644 --- a/doc/jsoncpp.dox +++ b/doc/jsoncpp.dox @@ -92,13 +92,13 @@ features without losing binary-compatibility. \code // For convenience, use `writeString()` with a specialized builder. Json::StreamWriterBuilder wbuilder; -wbuilder.settings_["indentation"] = "\t"; +wbuilder.settings_["indentation"] = "\t"; // simple Json::Value std::string document = Json::writeString(wbuilder, root); // Here, using a specialized Builder, we discard comments and // record errors as we parse. Json::CharReaderBuilder rbuilder; -rbuilder.settings_["collectComments"] = false; +rbuilder.settings_["collectComments"] = false; // simple Json::Value std::string errs; bool ok = Json::parseFromStream(rbuilder, std::cin, &root, &errs); \endcode diff --git a/include/json/writer.h b/include/json/writer.h index c62d080..2b081a7 100644 --- a/include/json/writer.h +++ b/include/json/writer.h @@ -41,16 +41,6 @@ class JSON_API StreamWriter { protected: std::ostream* sout_; // not owned; will not delete public: - /// Scoped enums are not available until C++11. - struct CommentStyle { - /// Decide whether to write comments. - enum Enum { - None, ///< Drop all comments. - Most, ///< Recover odd behavior of previous versions (not implemented yet). - All ///< Keep all comments. - }; - }; - StreamWriter(); virtual ~StreamWriter(); /** Write Value into document as configured in sub-class. diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index d00f501..27d5f56 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -676,11 +676,21 @@ bool StyledStreamWriter::hasCommentForValue(const Value& value) { ////////////////////////// // BuiltStyledStreamWriter +/// Scoped enums are not available until C++11. +struct CommentStyle { + /// Decide whether to write comments. + enum Enum { + None, ///< Drop all comments. + Most, ///< Recover odd behavior of previous versions (not implemented yet). + All ///< Keep all comments. + }; +}; + struct BuiltStyledStreamWriter : public StreamWriter { BuiltStyledStreamWriter( std::string const& indentation, - StreamWriter::CommentStyle::Enum cs, + CommentStyle::Enum cs, std::string const& colonSymbol, std::string const& nullSymbol, std::string const& endingLineFeedSymbol); @@ -713,7 +723,7 @@ private: }; BuiltStyledStreamWriter::BuiltStyledStreamWriter( std::string const& indentation, - StreamWriter::CommentStyle::Enum cs, + CommentStyle::Enum cs, std::string const& colonSymbol, std::string const& nullSymbol, std::string const& endingLineFeedSymbol) @@ -963,11 +973,11 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const std::string indentation = settings_["indentation"].asString(); std::string cs_str = settings_["commentStyle"].asString(); - StreamWriter::CommentStyle::Enum cs = StreamWriter::CommentStyle::All; + CommentStyle::Enum cs = CommentStyle::All; if (cs_str == "All") { - cs = StreamWriter::CommentStyle::All; + cs = CommentStyle::All; } else if (cs_str == "None") { - cs = StreamWriter::CommentStyle::None; + cs = CommentStyle::None; } else { return NULL; } @@ -1031,7 +1041,7 @@ StreamWriter* OldCompressingStreamWriterBuilder::newStreamWriter() const endingLineFeedSymbol = ""; } return new BuiltStyledStreamWriter( - "", StreamWriter::CommentStyle::None, + "", CommentStyle::None, colonSymbol, nullSymbol, endingLineFeedSymbol); }