Configuration (预处理器宏)
MSGPACK_USE_BOOST (since 1.2.0)
Default value: not defined.
msgpack-c 支持 boost 容器。参见 https://github.com/msgpack/msgpack-c/tree/master/include/msgpack/adaptor/boost 使用这些适配器时,需要定义 MSGPACK_USE_BOOST。适配器需要 Boost 库。
MSGPACK_USE_DEFINE_MAP (since 1.2.0)
Default value: not defined.
定义 MSGPACK_USE_DEFINE_MAP 时,MSGPACK_DEFINE 别名为 MSGPACK_DEFINE_MAP,MSGPACK_BASE 别名为 MSGPACK_BASE_MAP。
如果未定义 MSGPACK_USE_DEFINE_MAP,则 MSGPACK_DEFINE 别名为 MSGPACK_DEFINE_ARRAY,MSGPACK_BASE 别名为 MSGPACK_BASE_ARRAY。
有关更多详细信息,请参阅 侵入式方法(intrusive approach)。
MSGPACK_USE_LEGACY_NIL (since 1.4.0)
Default value: not defined
msgpack::type::nil 被替换为 msgpack::type::nil_t 以避免 #408 冲突。
msgpack::type::nil 已过时。您需要将 msgpack::type::nil 替换为 msgpack::type::nil_t。
但是,如果您想继续使用 nil,请定义 MSGPACK_USE_LEGACY_NIL。当你这样做时,msgpack::type::nil 被定义为 msgpack::type::nil_t 的 typedef。
MSGPACK_USE_LEGACY_NAME_AS_FLOAT
Default value: not defined.
根据 msgpack 格式,支持 IEE 754 单精度或双精度浮点数:https://github.com/msgpack/msgpack/blob/master/spec.md#float-format-family
msgpack-c 提供了访问浮点格式系列的 API。
使用 msgpack::object 时,类型数据成员在 C++ 中为 msgpack::type::FLOAT,在 C 中为 MSGPACK_OBJECT_FLOAT。联合字段名称为“f64”。然而,它们在旧版本的 msgpack-c 中使用了不同的名称。
old name | new name |
---|---|
msgpack::type::DOUBLE | msgpack::type::FLOAT |
MSGPACK_OBJECT_DOUBLE | MSGPACK_OBJECT_FLOAT |
dec | f64 |
当您定义宏 MSGPACK_USE_LEGACY_NAME_AS_FLOAT 时,旧名称和新名称都可用。否则只有新名称可用。 |
请参阅以下提交:https://github.com/msgpack/msgpack-c/commit/737e6703df2cad06cfb16e3e0e34a02ec5212c38
MSGPACK_USE_CPP03
Default value: not defined.
msgpack 自动检测 C++ 版本(C11 或 C03)。如果定义 MSGPACK_USE_CPP03,msgpack 使用 C03,即使编译器设置为使用 C11。
Use C++03:
g++ -std=c++03 test.cpp
g++ -std=c++11 -DMSGPACK_USE_CPP03 test.cpp
Use C++11:
g++ -std=c++11 test.cpp
MSGPACK_EMBED_STACK_SIZE
Default value: 32.
当 msgpack 格式的字节流包含复合数据时,它会包含 …(N 次)数组。
C++
在 C++ 中,解包上下文堆栈被实现为 std::vector。 MSGPACK_EMBED_STACK_SIZE 提示复合级别。
msgpack 在使用 std::vector 时保留 MSGPACK_EMBED_STACK_SIZE。如果 msgpack 格式字节流包含多于 MSGPACK_EMBED_STACK_SIZE 元素,则扩展 std::vector。您可以设置复合级别的限制。请参阅元素的限制大小。
C
在 C 中,一堆解包上下文被实现为一个数组。 MSGPACK_EMBED_STACK_SIZE 表示复合级别的限制。如果 N >= MSGPACK_EMBED_STACK_SIZE 解包函数将返回解析错误。
configuration (cmake)
MSGPACK_BUILD_EXAMPLES
Default value: ON
Build examples or not.
MSGPACK_BUILD_TESTS
Default value: If gtest is found then ON, otherwise OFF.
Build tests or not.
MSGPACK_GEN_COVERAGE
Default value: OFF
Generate coverage or not.
MSGPACK_CXX11 (C++ only)
Default value: OFF
Use C++11 or not.
MSGPACK_CXX17 (C++ only)
Default value: OFF
Use C++17 or not.
Q.E.D.