Go to the documentation of this file.
6 #ifndef JSON_CONFIG_H_INCLUDED
7 #define JSON_CONFIG_H_INCLUDED
24 #ifndef JSON_USE_EXCEPTION
25 #define JSON_USE_EXCEPTION 1
34 #include <cpptl/config.h>
35 #ifndef JSON_USE_CPPTL
36 #define JSON_USE_CPPTL 1
41 #define JSON_API CPPTL_API
42 #elif defined(JSON_DLL_BUILD)
43 #if defined(_MSC_VER) || defined(__MINGW32__)
44 #define JSON_API __declspec(dllexport)
45 #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
46 #endif // if defined(_MSC_VER)
47 #elif defined(JSON_DLL)
48 #if defined(_MSC_VER) || defined(__MINGW32__)
49 #define JSON_API __declspec(dllimport)
50 #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
51 #endif // if defined(_MSC_VER)
52 #endif // ifdef JSON_IN_CPPTL
53 #if !defined(JSON_API)
62 #if defined(_MSC_VER) // MSVC
63 # if _MSC_VER <= 1200 // MSVC 6
66 # define JSON_USE_INT64_DOUBLE_CONVERSION 1
71 # pragma warning(disable : 4786)
74 # if _MSC_VER >= 1500 // MSVC 2008
75 # define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
79 #endif // defined(_MSC_VER)
84 #if __cplusplus >= 201103L
85 # define JSONCPP_OVERRIDE override
86 # define JSONCPP_NOEXCEPT noexcept
87 #elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900
88 # define JSONCPP_OVERRIDE override
89 # define JSONCPP_NOEXCEPT throw()
90 #elif defined(_MSC_VER) && _MSC_VER >= 1900
91 # define JSONCPP_OVERRIDE override
92 # define JSONCPP_NOEXCEPT noexcept
94 # define JSONCPP_OVERRIDE
95 # define JSONCPP_NOEXCEPT throw()
98 #ifndef JSON_HAS_RVALUE_REFERENCES
100 #if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
101 #define JSON_HAS_RVALUE_REFERENCES 1
102 #endif // MSVC >= 2010
105 #if __has_feature(cxx_rvalue_references)
106 #define JSON_HAS_RVALUE_REFERENCES 1
107 #endif // has_feature
109 #elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
110 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
111 #define JSON_HAS_RVALUE_REFERENCES 1
112 #endif // GXX_EXPERIMENTAL
114 #endif // __clang__ || __GNUC__
116 #endif // not defined JSON_HAS_RVALUE_REFERENCES
118 #ifndef JSON_HAS_RVALUE_REFERENCES
119 #define JSON_HAS_RVALUE_REFERENCES 0
123 #elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
124 # if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
125 # define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
126 # elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
127 # define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
128 # endif // GNUC version
129 #endif // __clang__ || __GNUC__
131 #if !defined(JSONCPP_DEPRECATED)
132 #define JSONCPP_DEPRECATED(message)
133 #endif // if !defined(JSONCPP_DEPRECATED)
136 # define JSON_USE_INT64_DOUBLE_CONVERSION 1
139 #if !defined(JSON_IS_AMALGAMATION)
143 # if JSONCPP_USING_SECURE_MEMORY
147 #endif // if !defined(JSON_IS_AMALGAMATION)
152 #if defined(JSON_NO_INT64)
155 #undef JSON_HAS_INT64
156 #else // if defined(JSON_NO_INT64)
158 #if defined(_MSC_VER) // Microsoft Visual Studio
161 #else // if defined(_MSC_VER) // Other platforms, use long long
162 typedef int64_t
Int64;
164 #endif // if defined(_MSC_VER)
167 #define JSON_HAS_INT64
168 #endif // if defined(JSON_NO_INT64)
169 #if JSONCPP_USING_SECURE_MEMORY
170 #define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
171 #define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
172 #define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>>
173 #define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
174 #define JSONCPP_ISTREAM std::istream
176 #define JSONCPP_STRING std::string
177 #define JSONCPP_OSTRINGSTREAM std::ostringstream
178 #define JSONCPP_OSTREAM std::ostream
179 #define JSONCPP_ISTRINGSTREAM std::istringstream
180 #define JSONCPP_ISTREAM std::istream
181 #endif // if JSONCPP_USING_SECURE_MEMORY
184 #endif // JSON_CONFIG_H_INCLUDED