mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-04-28 02:33:28 +02:00

The amalgated sources are generated by concatenating JsonCpp source in the correct order and defining macro JSON_IS_AMALGATED to prevent inclusion of other headers. Sources and header has been modified to prevent any inclusion when this macro is defined. The script amalgate.py handle the generation.
97 lines
3.4 KiB
C++
97 lines
3.4 KiB
C++
// 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
|
|
|
|
/// 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 defined, indicates that Json specific container should be used
|
|
/// (hash table & simple deque container with customizable allocator).
|
|
/// THIS FEATURE IS STILL EXPERIMENTAL! There is know bugs: See #3177332
|
|
//# define JSON_VALUE_USE_INTERNAL_MAP 1
|
|
/// Force usage of standard new/malloc based allocator instead of memory pool based allocator.
|
|
/// The memory pools allocator used optimization (initializing Value and ValueInternalLink
|
|
/// as if it was a POD) that may cause some validation tool to report errors.
|
|
/// Only has effects if JSON_VALUE_USE_INTERNAL_MAP is defined.
|
|
//# define JSON_USE_SIMPLE_INTERNAL_ALLOCATOR 1
|
|
|
|
/// If defined, indicates that Json use exception to report invalid type manipulation
|
|
/// instead of C assert macro.
|
|
# define JSON_USE_EXCEPTION 1
|
|
|
|
/// 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_AMALGATED
|
|
|
|
|
|
# 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)
|
|
# define JSON_API __declspec(dllexport)
|
|
# elif defined(JSON_DLL)
|
|
# define JSON_API __declspec(dllimport)
|
|
# else
|
|
# 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) && _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
|
|
#endif // if defined(_MSC_VER) && _MSC_VER < 1200 // MSVC 6
|
|
|
|
#if defined(_MSC_VER) && _MSC_VER >= 1500 // MSVC 2008
|
|
/// Indicates that the following function is deprecated.
|
|
# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
|
|
#endif
|
|
|
|
#if !defined(JSONCPP_DEPRECATED)
|
|
# define JSONCPP_DEPRECATED(message)
|
|
#endif // if !defined(JSONCPP_DEPRECATED)
|
|
|
|
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 long long int Int64;
|
|
typedef unsigned long long int UInt64;
|
|
# endif // if defined(_MSC_VER)
|
|
typedef Int64 LargestInt;
|
|
typedef UInt64 LargestUInt;
|
|
# define JSON_HAS_INT64
|
|
# endif // if defined(JSON_NO_INT64)
|
|
} // end namespace Json
|
|
|
|
|
|
#endif // JSON_CONFIG_H_INCLUDED
|