For gcc>=6 JSON_USE_INT64_DOUBLE_CONVERSION

This commit is contained in:
Christopher Dunn 2016-02-07 11:09:41 -06:00
parent 9a4b1e39bf
commit 95f120f68e
2 changed files with 6 additions and 1 deletions

View File

@ -114,6 +114,10 @@
#define JSONCPP_DEPRECATED(message)
#endif // if !defined(JSONCPP_DEPRECATED)
#if __GNUC__ >= 6
# define JSON_USE_INT64_DOUBLE_CONVERSION 1
#endif
namespace Json {
typedef int Int;
typedef unsigned int UInt;

View File

@ -784,7 +784,8 @@ float Value::asFloat() const {
#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
return static_cast<float>(value_.uint_);
#else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
return integerToDouble(value_.uint_);
// This can fail (silently?) if the value is bigger than MAX_FLOAT.
return static_cast<float>(integerToDouble(value_.uint_));
#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
case realValue:
return static_cast<float>(value_.real_);