Configuration macros for library features. More...
Macros | |
| #define | RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY (64 * 1024) |
| User-defined kDefaultChunkCapacity definition. | |
| #define | RAPIDJSON_DEFAULT_ALLOCATOR ::RAPIDJSON_NAMESPACE::MemoryPoolAllocator<::RAPIDJSON_NAMESPACE::CrtAllocator> |
| Allows to choose default allocator. | |
| #define | RAPIDJSON_DEFAULT_STACK_ALLOCATOR ::RAPIDJSON_NAMESPACE::CrtAllocator |
| Allows to choose default stack allocator for Document. | |
| #define | RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY 16 |
| User defined kDefaultObjectCapacity value. | |
| #define | RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY 16 |
| User defined kDefaultArrayCapacity value. | |
| #define | RAPIDJSON_MAJOR_VERSION 1 |
| Major version of RapidJSON in integer. | |
| #define | RAPIDJSON_MINOR_VERSION 1 |
| Minor version of RapidJSON in integer. | |
| #define | RAPIDJSON_PATCH_VERSION 0 |
| Patch version of RapidJSON in integer. | |
| #define | RAPIDJSON_VERSION_STRING RAPIDJSON_STRINGIFY(RAPIDJSON_MAJOR_VERSION.RAPIDJSON_MINOR_VERSION.RAPIDJSON_PATCH_VERSION) |
| Version of RapidJSON in "<major>.<minor>.<patch>" string format. | |
| #define | RAPIDJSON_NAMESPACE rapidjson |
| provide custom rapidjson namespace | |
| #define | RAPIDJSON_NAMESPACE_BEGIN namespace RAPIDJSON_NAMESPACE { |
| provide custom rapidjson namespace (opening expression) | |
| #define | RAPIDJSON_NAMESPACE_END } |
| provide custom rapidjson namespace (closing expression) | |
| #define | RAPIDJSON_HAS_STDSTRING |
Enable RapidJSON support for std::string. | |
| #define | RAPIDJSON_USE_MEMBERSMAP |
Enable RapidJSON support for object members handling in a std::multimap. | |
| #define | RAPIDJSON_ALIGN(x) |
| Data alignment of the machine. | |
| #define | RAPIDJSON_48BITPOINTER_OPTIMIZATION 0 |
| Use only lower 48-bit address for some pointers. | |
| #define | RAPIDJSON_NO_SIZETYPEDEFINE |
User-provided SizeType definition. | |
| #define | RAPIDJSON_ASSERT(x) |
| Assertion. | |
| #define | RAPIDJSON_LIKELY(x) |
| Compiler branching hint for expression with high probability to be true. | |
| #define | RAPIDJSON_UNLIKELY(x) |
| Compiler branching hint for expression with low probability to be true. | |
| #define | RAPIDJSON_NOEXCEPT_ASSERT(x) |
| Assertion (in non-throwing contexts). | |
| #define | RAPIDJSON_VALIDATE_DEFAULT_FLAGS kValidateNoFlags |
| User-defined kValidateDefaultFlags definition. | |
Configuration macros for library features.
Some RapidJSON features are configurable to adapt the library to a wide variety of platforms, environments and usage scenarios. Most of the features can be configured in terms of overridden or predefined preprocessor macros at compile-time.
Some additional customization is available in the RapidJSON error handling APIs.
| #define RAPIDJSON_48BITPOINTER_OPTIMIZATION 0 |
Use only lower 48-bit address for some pointers.
This optimization uses the fact that current X86-64 architecture only implement lower 48-bit virtual address. The higher 16-bit can be used for storing other data. GenericValue uses this optimization to reduce its size form 24 bytes to 16 bytes in 64-bit architecture.
Definition at line 339 of file rapidjson.h.
| #define RAPIDJSON_ALIGN | ( | x | ) |
Data alignment of the machine.
| x | pointer to align |
Some machines require strict data alignment. The default is 8 bytes. User can customize by defining the RAPIDJSON_ALIGN function macro.
Definition at line 308 of file rapidjson.h.
Referenced by MemoryPoolAllocator< BaseAllocator >::Malloc(), and MemoryPoolAllocator< BaseAllocator >::Realloc().
| #define RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY (64 * 1024) |
User-defined kDefaultChunkCapacity definition.
User can define this as any size that is a power of 2.
Definition at line 73 of file allocators.h.
| #define RAPIDJSON_ASSERT | ( | x | ) |
Assertion.
By default, rapidjson uses C assert() for internal assertions. User can override it by defining RAPIDJSON_ASSERT(x) macro.
Definition at line 438 of file rapidjson.h.
Referenced by AutoUTFInputStream< CharType, InputByteStream >::AutoUTFInputStream(), AutoUTFOutputStream< CharType, OutputByteStream >::AutoUTFOutputStream(), BasicIStreamWrapper< std::istream >::BasicIStreamWrapper(), FileReadStream::FileReadStream(), GenericSchemaDocument< Value, CrtAllocator >::GenericSchemaDocument(), GenericStringRef< Ch >::GenericStringRef(), GenericDocument< UTF8<> >::GetAllocator(), GenericReader< UTF8< char >, UTF8< char >, CrtAllocator >::IterativeParseNext(), MemoryPoolAllocator< BaseAllocator >::MemoryPoolAllocator(), MemoryPoolAllocator< BaseAllocator >::MemoryPoolAllocator(), GenericDocument< UTF8<> >::Parse(), GenericDocument< UTF8<> >::ParseStream(), GenericDocument< UTF8<> >::Populate(), PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::RawValue(), Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::RawValue(), and PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::SetIndent().
| #define RAPIDJSON_DEFAULT_ALLOCATOR ::RAPIDJSON_NAMESPACE::MemoryPoolAllocator<::RAPIDJSON_NAMESPACE::CrtAllocator> |
Allows to choose default allocator.
User can define this to use CrtAllocator or MemoryPoolAllocator.
Definition at line 79 of file document.h.
| #define RAPIDJSON_DEFAULT_STACK_ALLOCATOR ::RAPIDJSON_NAMESPACE::CrtAllocator |
Allows to choose default stack allocator for Document.
User can define this to use CrtAllocator or MemoryPoolAllocator.
Definition at line 89 of file document.h.
| #define RAPIDJSON_HAS_STDSTRING |
Enable RapidJSON support for std::string.
By defining this preprocessor symbol to 1, several convenience functions for using rapidjson::GenericValue with std::string are enabled, especially for construction and comparison.
Definition at line 148 of file rapidjson.h.
| #define RAPIDJSON_LIKELY | ( | x | ) |
Compiler branching hint for expression with high probability to be true.
| x | Boolean expression likely to be true. |
Definition at line 495 of file rapidjson.h.
Referenced by GenericStringRef< Ch >::GenericStringRef(), GenericReader< UTF8< char >, UTF8< char >, CrtAllocator >::IterativeParseNext(), GenericMember< Encoding, Allocator >::operator=(), and GenericValue< Encoding, Allocator >::operator=().
| #define RAPIDJSON_MAJOR_VERSION 1 |
Major version of RapidJSON in integer.
Definition at line 76 of file rapidjson.h.
| #define RAPIDJSON_MINOR_VERSION 1 |
Minor version of RapidJSON in integer.
Definition at line 77 of file rapidjson.h.
| #define RAPIDJSON_NAMESPACE rapidjson |
provide custom rapidjson namespace
In order to avoid symbol clashes and/or "One Definition Rule" errors between multiple inclusions of (different versions of) RapidJSON in a single binary, users can customize the name of the main RapidJSON namespace.
In case of a single nesting level, defining RAPIDJSON_NAMESPACE to a custom name (e.g. MyRapidJSON) is sufficient. If multiple levels are needed, both RAPIDJSON_NAMESPACE_BEGIN and RAPIDJSON_NAMESPACE_END need to be defined as well:
Definition at line 119 of file rapidjson.h.
| #define RAPIDJSON_NAMESPACE_BEGIN namespace RAPIDJSON_NAMESPACE { |
provide custom rapidjson namespace (opening expression)
Definition at line 122 of file rapidjson.h.
| #define RAPIDJSON_NAMESPACE_END } |
provide custom rapidjson namespace (closing expression)
Definition at line 125 of file rapidjson.h.
| #define RAPIDJSON_NO_SIZETYPEDEFINE |
User-provided SizeType definition.
In order to avoid using 32-bit size types for indexing strings and arrays, define this preprocessor symbol and provide the type rapidjson::SizeType before including RapidJSON:
Definition at line 22 of file JSONWriter.cc.
| #define RAPIDJSON_NOEXCEPT_ASSERT | ( | x | ) |
Assertion (in non-throwing contexts).
Some functions provide a noexcept guarantee, if the compiler supports it. In these cases, the RAPIDJSON_ASSERT macro cannot be overridden to throw an exception. This macro adds a separate customization point for such cases.
Defaults to C assert() (as RAPIDJSON_ASSERT), if noexcept is supported, and to RAPIDJSON_ASSERT otherwise.
Definition at line 688 of file rapidjson.h.
Referenced by MemoryPoolAllocator< BaseAllocator >::Capacity(), MemoryPoolAllocator< BaseAllocator >::Clear(), GenericValue< Encoding, Allocator >::GenericValue(), MemoryPoolAllocator< BaseAllocator >::Malloc(), MemoryPoolAllocator< BaseAllocator >::operator==(), MemoryPoolAllocator< BaseAllocator >::Realloc(), MemoryPoolAllocator< BaseAllocator >::Shared(), and MemoryPoolAllocator< BaseAllocator >::Size().
| #define RAPIDJSON_PATCH_VERSION 0 |
Patch version of RapidJSON in integer.
Definition at line 78 of file rapidjson.h.
| #define RAPIDJSON_UNLIKELY | ( | x | ) |
Compiler branching hint for expression with low probability to be true.
| x | Boolean expression unlikely to be true. |
Definition at line 508 of file rapidjson.h.
Referenced by GenericReader< UTF8< char >, UTF8< char >, CrtAllocator >::IterativeParseNext(), MemoryPoolAllocator< BaseAllocator >::Malloc(), and GenericReader< UTF8< char >, UTF8< char >, CrtAllocator >::Parse().
| #define RAPIDJSON_USE_MEMBERSMAP |
Enable RapidJSON support for object members handling in a std::multimap.
By defining this preprocessor symbol to 1, rapidjson::GenericValue object members are stored in a std::multimap for faster lookup and deletion times, a trade off with a slightly slower insertion time and a small object allocat(or)ed memory overhead.
Definition at line 181 of file rapidjson.h.
Referenced by GenericValue< Encoding, Allocator >::~GenericValue().
| #define RAPIDJSON_VALIDATE_DEFAULT_FLAGS kValidateNoFlags |
| #define RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY 16 |
User defined kDefaultArrayCapacity value.
User can define this as any natural number.
Definition at line 111 of file document.h.
| #define RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY 16 |
User defined kDefaultObjectCapacity value.
User can define this as any natural number.
Definition at line 100 of file document.h.
| #define RAPIDJSON_VERSION_STRING RAPIDJSON_STRINGIFY(RAPIDJSON_MAJOR_VERSION.RAPIDJSON_MINOR_VERSION.RAPIDJSON_PATCH_VERSION) |
Version of RapidJSON in "<major>.<minor>.<patch>" string format.
Definition at line 79 of file rapidjson.h.