drop scoped enum, for pre-C++11 compatibility

This commit is contained in:
Christopher Dunn 2015-01-29 12:57:02 -06:00
parent 5e8595c0e2
commit 198cc350c5
2 changed files with 12 additions and 9 deletions

View File

@ -41,11 +41,14 @@ class JSON_API StreamWriter {
protected:
std::ostream& sout_; // not owned; will not delete
public:
/// Decide whether to write comments.
enum class CommentStyle {
None, ///< Drop all comments.
Most, ///< Recover odd behavior of previous versions (not implemented yet).
All ///< Keep all comments.
/// 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.
};
};
/// Keep a reference, but do not take ownership of `sout`.
@ -92,7 +95,7 @@ public:
/** \brief How to write comments.
* Default: All
*/
StreamWriter::CommentStyle cs_;
StreamWriter::CommentStyle::Enum cs_;
/** \brief Write in human-friendly style.
If "", then skip all indentation and newlines.

View File

@ -673,7 +673,7 @@ struct BuiltStyledStreamWriter : public StreamWriter
BuiltStyledStreamWriter(
std::ostream* sout,
std::string const& indentation,
StreamWriter::CommentStyle cs,
StreamWriter::CommentStyle::Enum cs,
std::string const& colonSymbol,
std::string const& nullSymbol,
std::string const& endingLineFeedSymbol);
@ -697,7 +697,7 @@ private:
std::string indentString_;
int rightMargin_;
std::string indentation_;
CommentStyle cs_;
CommentStyle::Enum cs_;
std::string colonSymbol_;
std::string nullSymbol_;
std::string endingLineFeedSymbol_;
@ -707,7 +707,7 @@ private:
BuiltStyledStreamWriter::BuiltStyledStreamWriter(
std::ostream* sout,
std::string const& indentation,
StreamWriter::CommentStyle cs,
StreamWriter::CommentStyle::Enum cs,
std::string const& colonSymbol,
std::string const& nullSymbol,
std::string const& endingLineFeedSymbol)