msgpack에 대한 C++ 빠른 시작 안내서를 살펴 보았습니다.C++ msgpack 사용자 정의 클래스 - 시작할 수 없습니다.
#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의 객체의 벡터를 직렬화 할 :이
http://wiki.msgpack.org/pages/viewpage.action?pageId=1081387
는 다음과 같은 코드가있다.
...
vector<myclass> rb;
myclass mc;
...
int main(){
...
mc("hello","world");
rb.push_back(mc)
...
}
을하지만이 작동하지 않습니다 ("오류 : 호출에 대해 전혀 일치")
또한, 내가 할 경우 :
mc.str1="hello"
mc.str2="world"
나는 다음을 시도했습니다
str1 및 str2는 private이므로 작동하지 않습니다.
이 MSGPACK_DEFINE (...) 매크로를 올바르게 사용하는 방법은 무엇입니까? 온라인에서 아무것도 찾을 수없는 것 같습니다.
많은 감사,
http://msgpack.sourcearchive.com/documentation/0.5.4-1/msgpack__test_8cpp-source.html may help;) – tuergeist