【问题标题】:msgpack: pack the class in member-functionmsgpack:将类打包到成员函数中
【发布时间】:2012-12-12 14:20:01
【问题描述】:

我对“msgpack”还很陌生。我正在尝试打包用户定义的类:

MyClass::Pack()
{
    msgpack::sbuffer sbuf;
    msgpack::pack(sbuf, this);
}

但是编译器 (VC 9.0) 说我

error C2228: left of '.msgpack_pack' must have class/struct/union third_party\msgpack\include\msgpack\object.hpp 218

我找到的唯一方法:

MyClass::Pack()
{
    MyClass copy(this);
    msgpack::sbuffer sbuf;
    msgpack::pack(sbuf, copy);
}

但如果我不想制作副本(例如,操作繁重或需要许多额外资源)怎么办?我可以在没有复印机的情况下做到这一点吗?谢谢。

【问题讨论】:

    标签: c++ msgpack


    【解决方案1】:

    调用msgpack::pack(sbuf, this); 可能是msgpack::pack(sbuf, *this); 来获取一个对象(this 只是一个指针)...我不确定MyClass copy(this); 是否正在调用一个正确的复制构造函数...也许我错了,我还没用过msgpack,我只看到C++ :(

    【讨论】:

    • 该死的,我怎么能错过这个。谢谢,似乎是有效的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多