6 #ifndef JSON_CONFIG_H_INCLUDED
7 #define JSON_CONFIG_H_INCLUDED
23 #ifndef JSON_USE_EXCEPTION
24 #define JSON_USE_EXCEPTION 1
33 #include <cpptl/config.h>
34 #ifndef JSON_USE_CPPTL
35 #define JSON_USE_CPPTL 1
40 #define JSON_API CPPTL_API
41 #elif defined(JSON_DLL_BUILD)
42 #if defined(_MSC_VER) || defined(__MINGW32__)
43 #define JSON_API __declspec(dllexport)
44 #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
45 #endif // if defined(_MSC_VER)
46 #elif defined(JSON_DLL)
47 #if defined(_MSC_VER) || defined(__MINGW32__)
48 #define JSON_API __declspec(dllimport)
49 #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
50 #endif // if defined(_MSC_VER)
51 #endif // ifdef JSON_IN_CPPTL
52 #if !defined(JSON_API)
61 #if defined(_MSC_VER) // MSVC
62 # if _MSC_VER <= 1200 // MSVC 6
65 # define JSON_USE_INT64_DOUBLE_CONVERSION 1
70 # pragma warning(disable : 4786)
73 # if _MSC_VER >= 1500 // MSVC 2008
74 # define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
78 #endif // defined(_MSC_VER)
80 #if defined(_MSC_VER) && _MSC_VER <= 1600 // MSVC <= 2010
81 # define JSONCPP_OVERRIDE
83 # define JSONCPP_OVERRIDE override
84 #endif // MSVC <= 2010
87 #ifndef JSON_HAS_RVALUE_REFERENCES
89 #if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
90 #define JSON_HAS_RVALUE_REFERENCES 1
91 #endif // MSVC >= 2010
94 #if __has_feature(cxx_rvalue_references)
95 #define JSON_HAS_RVALUE_REFERENCES 1
98 #elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
99 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
100 #define JSON_HAS_RVALUE_REFERENCES 1
101 #endif // GXX_EXPERIMENTAL
103 #endif // __clang__ || __GNUC__
105 #endif // not defined JSON_HAS_RVALUE_REFERENCES
107 #ifndef JSON_HAS_RVALUE_REFERENCES
108 #define JSON_HAS_RVALUE_REFERENCES 0
112 #elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
113 # if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
114 # define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
115 # elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
116 # define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
117 # endif // GNUC version
118 #endif // __clang__ || __GNUC__
120 #if !defined(JSONCPP_DEPRECATED)
121 #define JSONCPP_DEPRECATED(message)
122 #endif // if !defined(JSONCPP_DEPRECATED)
125 # define JSON_USE_INT64_DOUBLE_CONVERSION 1
128 #if !defined(JSON_IS_AMALGAMATION)
132 # if JSONCPP_USING_SECURE_MEMORY
136 #endif // if !defined(JSON_IS_AMALGAMATION)
141 #if defined(JSON_NO_INT64)
144 #undef JSON_HAS_INT64
145 #else // if defined(JSON_NO_INT64)
147 #if defined(_MSC_VER) // Microsoft Visual Studio
150 #else // if defined(_MSC_VER) // Other platforms, use long long
151 typedef long long int Int64;
152 typedef unsigned long long int UInt64;
153 #endif // if defined(_MSC_VER)
156 #define JSON_HAS_INT64
157 #endif // if defined(JSON_NO_INT64)
158 #if JSONCPP_USING_SECURE_MEMORY
159 #define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
160 #define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
161 #define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>>
162 #define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
163 #define JSONCPP_ISTREAM std::istream
165 #define JSONCPP_STRING std::string
166 #define JSONCPP_OSTRINGSTREAM std::ostringstream
167 #define JSONCPP_OSTREAM std::ostream
168 #define JSONCPP_ISTRINGSTREAM std::istringstream
169 #define JSONCPP_ISTREAM std::istream
170 #endif // if JSONCPP_USING_SECURE_MEMORY
173 #endif // JSON_CONFIG_H_INCLUDED
JSON (JavaScript Object Notation).