From cc8833506c4b7b94f3c9f0d01d8afe3fd50325af Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Thu, 26 Jun 2014 16:06:15 +0200 Subject: [PATCH] document.h: define __STDC_CONSTANT_MACROS The C++ standard does not include the C99 macros used to set the (U)INT64 constants in document.h and reader.h (see adf66292 and ce1fece2). Many implementations include their definition when the __STDC_CONSTANT_MACROS preprocessor symbol is defined. See e.g. http://www.cprogramdevelop.com/5272623/, needed to successfully build in travis-ci.org's environment. --- include/rapidjson/rapidjson.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/rapidjson/rapidjson.h b/include/rapidjson/rapidjson.h index 30fd7a1..fd31aef 100644 --- a/include/rapidjson/rapidjson.h +++ b/include/rapidjson/rapidjson.h @@ -10,13 +10,19 @@ /////////////////////////////////////////////////////////////////////////////// // RAPIDJSON_NO_INT64DEFINE -// Here defines int64_t and uint64_t types in global namespace. +// Here defines int64_t and uint64_t types in global namespace as well as the +// (U)INT64_C constant macros. // If user have their own definition, can define RAPIDJSON_NO_INT64DEFINE to disable this. #ifndef RAPIDJSON_NO_INT64DEFINE +#ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS 1 // required by C++ standard +#endif #ifdef _MSC_VER +#include "msinttypes/stdint.h" #include "msinttypes/inttypes.h" #else // Other compilers should have this. +#include #include #endif #endif // RAPIDJSON_NO_INT64TYPEDEF