-
Notifications
You must be signed in to change notification settings - Fork 883
v1_1_cpp_configure
Default value: not defined msgpack-c supports boost containers. See https://github.com/msgpack/msgpack-c/tree/master/include/msgpack/adaptor/boost When you use these adaptors, you need to define MSGPACK_USE_BOOST. The adaptors requires the Boost Libraries.
Default value: not defined
When you define MSGPACK_USE_DEFINE_MAP, MSGPACK_DEFINE is an alias of MSGPACK_DEFINE_MAP and MSGPACK_BASE is an alias of MSGPACK_BASE_MAP. If you doesn't defined, MSGPACK_DEFINE is an alias of MSGPACK_DEFINE_ARRAY and MSGPACK_BASE is an alias of MSGPACK_BASE_ARRAY. See intrusive approach.
Default value: not defined
msgpack::type::nil
is replaced with msgpack::type::nil_t
to avoid conflict by #408. nil
is defined by system on some environment. See #368 and #406. You need to replace msgpack::type::nil
with msgpack::type::nil_t
in your codes. However, you might want to continue to use nil. If MSGPACK_DISABLE_LEGACY_NIL
is NOT defined, msgpack::type::nil
is defined as the typedef of msgpack::type::nil_t
. However, msgpack::type::nil
is obsolete. It will be removed in the version 2.0.0. Please define MSGPACK_DISABLE_LEGACY_NIL
to prepare the version 2.0.0.
Default value: not defined
msgpack::object::convert(T*)
is removed to solve #399. You need to use msgpack::object::convert(T&)
. If MSGPACK_DISABLE_LEGACY_CONVERT
is NOT defined, msgpack::object::convert(T*)
is removed. msgpack::object::convert(T*)
is obsolete. It will be removed in the version 2.0.0. Please define MSGPACK_DISABLE_LEGACY_CONVERT
to prepare the version 2.0.0 and update your code as follows:
Replace
int i;
obj.convert(&i);
with
int i;
obj.convert(i);
Default value: not defined
According to the msgpack format, that supports IEE 754 single or double precision floating-point number: https://github.com/msgpack/msgpack/blob/master/spec.md#float-format-family
msgpack-c provides the API to access to the float format family. When you use msgpack::object, 'type' data member is 'msgpack::type::FLOAT' in C++ and 'MSGPACK_OBJECT_FLOAT' in C. The union field name is 'f64'. But it used to have different names.
old name | new name |
---|---|
msgpack::type::DOUBLE | msgpack::type::FLOAT |
MSGPACK_OBJECT_DOUBLE | MSGPACK_OBJECT_FLOAT |
dec | f64 |
When you define the macro MSGPACK_USE_LEGACY_NAME_AS_FLOAT, both the old name and the new name are available. Otherwise only the new name is available.
See the following commit: https://github.com/msgpack/msgpack-c/commit/737e6703df2cad06cfb16e3e0e34a02ec5212c38
Default value: not defined
msgpack is automatically detected C++ version (C++11 or C++03). When you define MSGPACK_USE_CPP03, msgpack use C++03 stuff even if the compiler is C++11.
Use C++03 stuff:
g++ -std=c++03 test.cpp
g++ -std=c++11 -DMSGPACK_USE_CPP03 test.cpp
Use C++11 stuff:
g++ -std=c++11 test.cpp
Default value: 32
When msgpack format byte stream contains composite data, it would contain array of array of ... (N times)
In C, a stack of unpack context is implemented as a std::vector. MSGPACK_EMBED_STACK_SIZE means the hint of the composite level. msgpack reserves MSGPACK_EMBED_STACK_SIZE elements of the std::vector. If the msgpack format byte stream contains over MSGPACK_EMBED_STACK_SIZE elements, std::vector is expanded. You can set the limit of the composite level. See limit size of elements.
In C, a stack of unpack context is implemented as an array. MSGPACK_EMBED_STACK_SIZE means the limit of the composite level. If N >= MSGPACK_EMBED_STACK_SIZE unpacking functions return parse error.
-
Home
- Q&A
- v2.0.x or later
- v1.1.x - v1.4.x
- v1.0.x