Assume C++11 We already assume C++11 elsewhere, so all pre-11 `#ifdef` branches are dead code at this point. Fixes issue #1591 because we can just use `std::isfinite` etc. assume C++11 in json_reader.cpp as well apply clang-format
diff --git a/AUTHORS b/AUTHORS index e1fa0fc..7a3def2 100644 --- a/AUTHORS +++ b/AUTHORS
@@ -16,7 +16,7 @@ Ben Boeckel <mathstuf@gmail.com> Benjamin Knecht <bknecht@logitech.com> Bernd Kuhls <bernd.kuhls@t-online.de> -Billy Donahue <billydonahue@google.com> +Billy Donahue <billy.donahue@gmail.com> Braden McDorman <bmcdorman@gmail.com> Brandon Myers <bmyers1788@gmail.com> Brendan Drew <brendan.drew@daqri.com>
diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp index 10c97ae..5b62999 100644 --- a/src/lib_json/json_reader.cpp +++ b/src/lib_json/json_reader.cpp
@@ -23,13 +23,6 @@ #include <utility> #include <cstdio> -#if __cplusplus >= 201103L - -#if !defined(sscanf) -#define sscanf std::sscanf -#endif - -#endif //__cplusplus #if defined(_MSC_VER) #if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) @@ -53,11 +46,7 @@ namespace Json { -#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) using CharReaderPtr = std::unique_ptr<CharReader>; -#else -using CharReaderPtr = std::auto_ptr<CharReader>; -#endif // Implementation of class Features // ////////////////////////////////
diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index ee45c43..e5b5dd8 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp
@@ -10,6 +10,8 @@ #include <algorithm> #include <cassert> #include <cctype> +#include <cmath> +#include <cstdio> #include <cstring> #include <iomanip> #include <memory> @@ -17,67 +19,6 @@ #include <sstream> #include <utility> -#if __cplusplus >= 201103L -#include <cmath> -#include <cstdio> - -#if !defined(isnan) -#define isnan std::isnan -#endif - -#if !defined(isfinite) -#define isfinite std::isfinite -#endif - -#else -#include <cmath> -#include <cstdio> - -#if defined(_MSC_VER) -#if !defined(isnan) -#include <float.h> -#define isnan _isnan -#endif - -#if !defined(isfinite) -#include <float.h> -#define isfinite _finite -#endif - -#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) -#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 -#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - -#endif //_MSC_VER - -#if defined(__sun) && defined(__SVR4) // Solaris -#if !defined(isfinite) -#include <ieeefp.h> -#define isfinite finite -#endif -#endif - -#if defined(__hpux) -#if !defined(isfinite) -#if defined(__ia64) && !defined(finite) -#define isfinite(x) \ - ((sizeof(x) == sizeof(float) ? _Isfinitef(x) : _IsFinite(x))) -#endif -#endif -#endif - -#if !defined(isnan) -// IEEE standard states that NaN values will not compare to themselves -#define isnan(x) ((x) != (x)) -#endif - -#if !defined(__APPLE__) -#if !defined(isfinite) -#define isfinite finite -#endif -#endif -#endif - #if defined(_MSC_VER) // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) @@ -85,11 +26,7 @@ namespace Json { -#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) using StreamWriterPtr = std::unique_ptr<StreamWriter>; -#else -using StreamWriterPtr = std::auto_ptr<StreamWriter>; -#endif String valueToString(LargestInt value) { UIntToStringBuffer buffer; @@ -129,12 +66,12 @@ // Print into the buffer. We need not request the alternative representation // that always has a decimal point because JSON doesn't distinguish the // concepts of reals and integers. - if (!isfinite(value)) { + if (!std::isfinite(value)) { static const char* const reps[2][3] = {{"NaN", "-Infinity", "Infinity"}, {"null", "-1e+9999", "1e+9999"}}; - return reps[useSpecialFloats ? 0 : 1][isnan(value) ? 0 - : (value < 0) ? 1 - : 2]; + return reps[useSpecialFloats ? 0 : 1][std::isnan(value) ? 0 + : (value < 0) ? 1 + : 2]; } String buffer(size_t(36), '\0');