我工作的一段代碼與自定義字符串實現,而不是的std :: string交易(長的故事,但是這個有各種原因被使用),我將從此處稱爲「字符串」。msgpack開箱到任意對象,不msgpack_define
我能夠輕鬆地收拾字符串不使用「原始」型包裝的原始字符字節,大小的問題,但我有拆包的問題。
我能夠手動它解,如下所示。
// before this I've unpacked to the point where the following object has the string
msgpack::object_kv& kv = obj.via.map.ptr[0];
// kv.key == the String I want
String key = String(key.via.raw.ptr, key.via.raw.size); // this works
但我想使用內置的>>運算符或.as模板函數,並且無法對其進行管理。我沒有訪問修改字符串類添加msgpack_unpack函數,也不添加MSGPACK_DEFINE我試圖創建一個結構並給它一個msgpack_unpack函數,但顯然它調用它與msgpack :: object :: implicit_type它我的編譯器與
error: 'struct msgpack::object::implicit_type' is private
回覆然後我想不通得到msgpack ::對象開展「implicit_type」對象的任何方式。
任何想法?
這也許可以做一個函數,而不是類 – hetepeperfan
的成員實施的工作'字符串和操作>>(字符串,yourtype)'我們再看一下我終於得到了之後,爲什麼我在嘗試操作之前>>不工作,我會用全部結果回答這個問題。 – Zeroshade