私は、msgpackのC++クイックスタートガイドを見てきました。そこC++ msgpackユーザ定義クラス - 起動できません
http://wiki.msgpack.org/pages/viewpage.action?pageId=1081387
、次のコードスニペットがあります:
#include <msgpack.hpp>
#include <vector>
#include <string>
class myclass {
private:
std::string str1;
std::string str2;
public:
MSGPACK_DEFINE(str1,str2);
};
int main(void) {
std::vector<myclass> vec;
// add some elements into vec...
/////
/* But what goes here??? */
/////
// you can serialize myclass directly
msgpack::sbuffer sbuf;
msgpack::pack(sbuf, vec);
msgpack::unpacked msg;
msgpack::unpack(&msg, sbuf.data(), sbuf.size());
msgpack::object obj = msg.get();
// you can convert object to myclass directly
std::vector<myclass> rvec;
obj.convert(&rvec);
}
私はMyClassのオブジェクトのベクトルをシリアル化します。
私は次のことを試してみた:
...
vector<myclass> rb;
myclass mc;
...
int main(){
...
mc("hello","world");
rb.push_back(mc)
...
}
しかし、これは、( "エラー:呼び出しのための不一致")は動作しません私がしなければ、また
を:
mc.str1="hello"
mc.str2="world"
それはstr1とstr2がプライベートなので動作しません。
このMSGPACK_DEFINE(...)マクロを正しく使用するには?私はオンラインで何かを見つけることができません。
多くのおかげで、
http://msgpack.sourcearchive.com/documentation/0.5.4-1/msgpack__test_8cpp-source.html may help;) – tuergeist