【发布时间】:2016-07-14 15:31:24
【问题描述】:
我想通过 msgpack 发送以下结构。
struct MyStruct {
std::string name{""};
int* val{nullptr};
MSGPACK_DEFINE( name, val );
};
到目前为止,在我的所有项目中,我使用 msgpack 进行流式传输的唯一方法是使用 MSGPACK_DEFINE,然后将结构写入 msgpack::sbuffer(并发送它)。 MSGPACK_DEFINE 宏抱怨说我可能错过了“->”,所以我猜它没有检测到它是一个指针。
智能指针似乎可以工作:
struct MyStruct {
std::string name{""};
std::shared_ptr<int> val{nullptr};
MSGPACK_DEFINE( name, val );
};
需要注意的是,另一端的接收者需要 val 是一个原始指针。我想这样做而不在接收端进行转换。有什么想法吗?
【问题讨论】:
标签: c++ pointers serialization stream msgpack