Issue #731: Provide new JSONCPP_OP_EXPLICIT macro to restore VS 2012 support after recent introduction of explicit conversion function in JSON::Value.

This commit is contained in:
drgler 2018-01-13 15:28:19 +01:00 committed by Christopher Dunn
parent edb4bdb7ec
commit 04abe38148
2 changed files with 9 additions and 1 deletions

View File

@ -84,15 +84,23 @@
#if __cplusplus >= 201103L
# define JSONCPP_OVERRIDE override
# define JSONCPP_NOEXCEPT noexcept
# define JSONCPP_OP_EXPLICIT explicit
#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900
# define JSONCPP_OVERRIDE override
# define JSONCPP_NOEXCEPT throw()
# if _MSC_VER >= 1800 // MSVC 2013
# define JSONCPP_OP_EXPLICIT explicit
# else
# define JSONCPP_OP_EXPLICIT
# endif
#elif defined(_MSC_VER) && _MSC_VER >= 1900
# define JSONCPP_OVERRIDE override
# define JSONCPP_NOEXCEPT noexcept
# define JSONCPP_OP_EXPLICIT explicit
#else
# define JSONCPP_OVERRIDE
# define JSONCPP_NOEXCEPT throw()
# define JSONCPP_OP_EXPLICIT
#endif
#ifndef JSON_HAS_RVALUE_REFERENCES

View File

@ -408,7 +408,7 @@ Json::Value obj_value(Json::objectValue); // {}
bool empty() const;
/// Return !isNull()
explicit operator bool() const;
JSONCPP_OP_EXPLICIT operator bool() const;
/// Remove all object members and array elements.
/// \pre type() is arrayValue, objectValue, or nullValue