RapidJSON: include/rapidjson/rapidjson.h File Reference

Namespaces | Macros | Typedefs | Enumerations
rapidjson.h File Reference

common definitions and configuration More...

`#include <cstdlib>`
`#include <cstring>`
`#include <string>`
`#include <cassert>`

Go to the source code of this file.

## Namespaces
| rapidjson
| main RapidJSON namespace

## Macros
#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 More...
#define | RAPIDJSON_HAS_STDSTRING
| Enable RapidJSON support for `std::string`. More...
#define | RAPIDJSON_NO_INT64DEFINE
| Use external 64-bit integer types. More...
#define | RAPIDJSON_LITTLEENDIAN 0
| Little endian machine.
#define | RAPIDJSON_BIGENDIAN 1
| Big endian machine.
#define | RAPIDJSON_ENDIAN
| Endianness of the machine. More...
#define | RAPIDJSON_64BIT 0
| Whether using 64-bit architecture.
#define | RAPIDJSON_ALIGN(x) (((x) + static_cast<size_t>(7u)) & ~static_cast<size_t>(7u))
| Data alignment of the machine. More...
#define | RAPIDJSON_UINT64_C2(high32, low32) ((static_cast<uint64_t>(high32) << 32) | static_cast<uint64_t>(low32))
| Construct a 64-bit literal by a pair of 32-bit integer. More...
#define | RAPIDJSON_48BITPOINTER_OPTIMIZATION 0
| Use only lower 48-bit address for some pointers. More...
#define | RAPIDJSON_SETPOINTER(type, p, x) (p = (x))
#define | RAPIDJSON_GETPOINTER(type, p) (p)
#define | RAPIDJSON_SIMD
| Enable SSE2/SSE4.2/Neon optimization. More...
#define | RAPIDJSON_NO_SIZETYPEDEFINE
| User-provided `SizeType` definition. More...
#define | RAPIDJSON_ASSERT(x) assert(x)
| Assertion. More...
#define | RAPIDJSON_STATIC_ASSERT(x)
| (Internal) macro to check for conditions at compile-time More...
#define | RAPIDJSON_LIKELY(x) (x)
| Compiler branching hint for expression with high probability to be true. More...
#define | RAPIDJSON_UNLIKELY(x) (x)
| Compiler branching hint for expression with low probability to be true. More...
#define | RAPIDJSON_NOEXCEPT_ASSERT(x) RAPIDJSON_ASSERT(x)
| Assertion (in non-throwing contexts). More...
#define | RAPIDJSON_MALLOC(size) std::malloc(size)
| ! customization point for global `malloc`
#define | RAPIDJSON_REALLOC(ptr, new_size) std::realloc(ptr, new_size)
| ! customization point for global `realloc`
#define | RAPIDJSON_FREE(ptr) std::free(ptr)
| ! customization point for global `free`
#define | RAPIDJSON_NEW(TypeName) new TypeName
| ! customization point for global `new`
#define | RAPIDJSON_DELETE(x) delete x
| ! customization point for global `delete`

## Typedefs
typedef unsigned | rapidjson::SizeType
| Size type (for string lengths, array sizes, etc.) More...

## Enumerations
enum | rapidjson::Type { rapidjson::kNullType = 0, rapidjson::kFalseType = 1, rapidjson::kTrueType = 2, rapidjson::kObjectType = 3, rapidjson::kArrayType = 4, rapidjson::kStringType = 5, rapidjson::kNumberType = 6 }
| Type of JSON value. More...

## Detailed Description

common definitions and configuration

See also
  RapidJSON configuration

## Macro Definition Documentation

## ◆ RAPIDJSON_STATIC_ASSERT

#define RAPIDJSON_STATIC_ASSERT | ( |  | x | ) |

(Internal) macro to check for conditions at compile-time

Parameters

  x | compile-time condition

## ◆ RAPIDJSON_UINT64_C2

#define RAPIDJSON_UINT64_C2 | ( |  | high32,
|  |  | low32
| ) |  | ((static_cast<uint64_t>(high32) << 32) | static_cast<uint64_t>(low32))

Construct a 64-bit literal by a pair of 32-bit integer.

64-bit literal with or without ULL suffix is prone to compiler warnings. UINT64_C() is C macro which cause compilation problems. Use this macro to define 64-bit constants by a pair of 32-bit integer.