forked from HIT-SCIR/ltp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
184 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
// Copyright 2007-2010 Baptiste Lepilleur | ||
// Distributed under MIT license, or public domain if desired and | ||
// recognized in your jurisdiction. | ||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE | ||
|
||
#ifndef JSON_CONFIG_H_INCLUDED | ||
#define JSON_CONFIG_H_INCLUDED | ||
#include <stddef.h> | ||
#include <string> //typedef String | ||
#include <stdint.h> //typedef int64_t, uint64_t | ||
|
||
/// If defined, indicates that json library is embedded in CppTL library. | ||
//# define JSON_IN_CPPTL 1 | ||
|
||
/// If defined, indicates that json may leverage CppTL library | ||
//# define JSON_USE_CPPTL 1 | ||
/// If defined, indicates that cpptl vector based map should be used instead of | ||
/// std::map | ||
/// as Value container. | ||
//# define JSON_USE_CPPTL_SMALLMAP 1 | ||
|
||
// If non-zero, the library uses exceptions to report bad input instead of C | ||
// assertion macros. The default is to use exceptions. | ||
#ifndef JSON_USE_EXCEPTION | ||
#define JSON_USE_EXCEPTION 1 | ||
#endif | ||
|
||
/// If defined, indicates that the source file is amalgated | ||
/// to prevent private header inclusion. | ||
/// Remarks: it is automatically defined in the generated amalgated header. | ||
// #define JSON_IS_AMALGAMATION | ||
|
||
#ifdef JSON_IN_CPPTL | ||
#include <cpptl/config.h> | ||
#ifndef JSON_USE_CPPTL | ||
#define JSON_USE_CPPTL 1 | ||
#endif | ||
#endif | ||
|
||
#ifdef JSON_IN_CPPTL | ||
#define JSON_API CPPTL_API | ||
#elif defined(JSON_DLL_BUILD) | ||
#if defined(_MSC_VER) || defined(__MINGW32__) | ||
#define JSON_API __declspec(dllexport) | ||
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING | ||
#endif // if defined(_MSC_VER) | ||
#elif defined(JSON_DLL) | ||
#if defined(_MSC_VER) || defined(__MINGW32__) | ||
#define JSON_API __declspec(dllimport) | ||
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING | ||
#endif // if defined(_MSC_VER) | ||
#endif // ifdef JSON_IN_CPPTL | ||
#if !defined(JSON_API) | ||
#define JSON_API | ||
#endif | ||
|
||
// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for | ||
// integer | ||
// Storages, and 64 bits integer support is disabled. | ||
// #define JSON_NO_INT64 1 | ||
|
||
#if defined(_MSC_VER) // MSVC | ||
# if _MSC_VER <= 1200 // MSVC 6 | ||
// Microsoft Visual Studio 6 only support conversion from __int64 to double | ||
// (no conversion from unsigned __int64). | ||
# define JSON_USE_INT64_DOUBLE_CONVERSION 1 | ||
// Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' | ||
// characters in the debug information) | ||
// All projects I've ever seen with VS6 were using this globally (not bothering | ||
// with pragma push/pop). | ||
# pragma warning(disable : 4786) | ||
# endif // MSVC 6 | ||
|
||
# if _MSC_VER >= 1500 // MSVC 2008 | ||
/// Indicates that the following function is deprecated. | ||
# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) | ||
# endif | ||
|
||
#endif // defined(_MSC_VER) | ||
|
||
// In c++11 the override keyword allows you to explicity define that a function | ||
// is intended to override the base-class version. This makes the code more | ||
// managable and fixes a set of common hard-to-find bugs. | ||
#if __cplusplus >= 201103L | ||
# define JSONCPP_OVERRIDE override | ||
# define JSONCPP_NOEXCEPT noexcept | ||
#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 | ||
# define JSONCPP_OVERRIDE override | ||
# define JSONCPP_NOEXCEPT throw() | ||
#elif defined(_MSC_VER) && _MSC_VER >= 1900 | ||
# define JSONCPP_OVERRIDE override | ||
# define JSONCPP_NOEXCEPT noexcept | ||
#else | ||
# define JSONCPP_OVERRIDE | ||
# define JSONCPP_NOEXCEPT throw() | ||
#endif | ||
|
||
#ifndef JSON_HAS_RVALUE_REFERENCES | ||
|
||
#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010 | ||
#define JSON_HAS_RVALUE_REFERENCES 1 | ||
#endif // MSVC >= 2010 | ||
|
||
#ifdef __clang__ | ||
#if __has_feature(cxx_rvalue_references) | ||
#define JSON_HAS_RVALUE_REFERENCES 1 | ||
#endif // has_feature | ||
|
||
#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) | ||
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) | ||
#define JSON_HAS_RVALUE_REFERENCES 1 | ||
#endif // GXX_EXPERIMENTAL | ||
|
||
#endif // __clang__ || __GNUC__ | ||
|
||
#endif // not defined JSON_HAS_RVALUE_REFERENCES | ||
|
||
#ifndef JSON_HAS_RVALUE_REFERENCES | ||
#define JSON_HAS_RVALUE_REFERENCES 0 | ||
#endif | ||
|
||
#ifdef __clang__ | ||
#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) | ||
# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) | ||
# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) | ||
# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) | ||
# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) | ||
# endif // GNUC version | ||
#endif // __clang__ || __GNUC__ | ||
|
||
#if !defined(JSONCPP_DEPRECATED) | ||
#define JSONCPP_DEPRECATED(message) | ||
#endif // if !defined(JSONCPP_DEPRECATED) | ||
|
||
#if __GNUC__ >= 6 | ||
# define JSON_USE_INT64_DOUBLE_CONVERSION 1 | ||
#endif | ||
|
||
#if !defined(JSON_IS_AMALGAMATION) | ||
|
||
# include "version.h" | ||
|
||
# if JSONCPP_USING_SECURE_MEMORY | ||
# include "allocator.h" //typedef Allocator | ||
# endif | ||
|
||
#endif // if !defined(JSON_IS_AMALGAMATION) | ||
|
||
namespace Json { | ||
typedef int Int; | ||
typedef unsigned int UInt; | ||
#if defined(JSON_NO_INT64) | ||
typedef int LargestInt; | ||
typedef unsigned int LargestUInt; | ||
#undef JSON_HAS_INT64 | ||
#else // if defined(JSON_NO_INT64) | ||
// For Microsoft Visual use specific types as long long is not supported | ||
#if defined(_MSC_VER) // Microsoft Visual Studio | ||
typedef __int64 Int64; | ||
typedef unsigned __int64 UInt64; | ||
#else // if defined(_MSC_VER) // Other platforms, use long long | ||
typedef int64_t Int64; | ||
typedef uint64_t UInt64; | ||
#endif // if defined(_MSC_VER) | ||
typedef Int64 LargestInt; | ||
typedef UInt64 LargestUInt; | ||
#define JSON_HAS_INT64 | ||
#endif // if defined(JSON_NO_INT64) | ||
#if JSONCPP_USING_SECURE_MEMORY | ||
#define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> > | ||
#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > | ||
#define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>> | ||
#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > | ||
#define JSONCPP_ISTREAM std::istream | ||
#else | ||
#define JSONCPP_STRING std::string | ||
#define JSONCPP_OSTRINGSTREAM std::ostringstream | ||
#define JSONCPP_OSTREAM std::ostream | ||
#define JSONCPP_ISTRINGSTREAM std::istringstream | ||
#define JSONCPP_ISTREAM std::istream | ||
#endif // if JSONCPP_USING_SECURE_MEMORY | ||
} // end namespace Json | ||
|
||
#endif // JSON_CONFIG_H_INCLUDED |