在C++中使用带有变体数据结构的msgpack
Using msgpack in C++ with variant data structures
在C++中用MessagePack反序列化异构映射的问题中,答案指的是一个要点,其中包含一个基于递归boost::variant
和msgpack的示例。我正试图用最新的msgpack-c库版本(1.3.0)复制这一点,但在编译时出现了一些错误。其中一些与API中类型的变化有关(消息包类型DOUBLE和RAW不再存在),其他似乎更基本:
In file included from msgpack-c/include/msgpack.hpp:10:0,
from variant.cpp:2:
msgpack-c/include/msgpack/object.hpp: In instantiation of ‘const msgpack::v1::object& msgpack::v1::adaptor::convert<T, Enabler>::operator()(const
<... lengthy output snipped for clarity ...>
msgpack::v1::object&, T&) const [with T = boost::detail::variant::void_>’ has no member named ‘msgpack_unpack’
v.msgpack_unpack(o.convert());
以及关于没有名为CCD_ 2的成员的类似消息。
是否有更新的要点或示例与最新的msgpack-c版本兼容?
我在一台CentOS7机器上编译,使用以下命令,gcc版本4.8.5,boost 1.58,msgpack-c仅作为标头包含:
g++ --std=c++11 -Imsgpack-c/include -o variant variant.cpp
是否有更新的要点或示例与最新的msgpack-c版本兼容?
有一些示例在msgpack-c存储库中使用变体。
参见:
https://github.com/msgpack/msgpack-c/blob/cpp_master/example/boost/msgpack_variant_capitalize.cpphttps://github.com/msgpack/msgpack-c/blob/cpp_master/example/boost/msgpack_variant_mapbased.cpp
msgpack-c现在包含变体适配器。它基于以下思想:
C++中用MessagePack反序列化异构映射
这是适配器:
https://github.com/msgpack/msgpack-c/blob/cpp_master/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp
以下讨论可能有助于理解变体的概念:
https://github.com/msgpack/msgpack-c/pull/349
为了使用适配器,您需要定义MSGPACK_use_BOOST。
参见:
https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_configure#msgpack_use_boost-自120 以来
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 尝试构建"lock-free"数据结构C++
- 设计将引用元素移动到开头的数据结构.C++
- 在学习数据结构之前对STL有一个了解是好的吗?
- 如何解析表示树状数据结构的字符串
- 我对数据结构、双向链表有一些问题
- googletest:测试太大的数据结构
- C++中deque数据结构的大O是什么?
- 我可以使用哪种数据结构来处理这种方式
- 将文本文件解析为树状数据结构
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 哪些存储了不完整类型的 STL 数据结构可以用作类成员?
- C++,您能否设计一种数据结构,将指针保存在连续内存中并且不会使它们失效?
- 在C++中使用带有变体数据结构的msgpack