我有几个通过UDP传输的MsgPack消息。在UDP通道的另一端,我需要将UDP有效负载转换回MsgPack消息的类型。
我使用以下代码反序列化:
class MyCustomType{
public:
MSGPACK_DEFINE(a);
... // Constructor, getter/setter
private:
int a;
};
...
msgpack::unpack(handle, data, bytesTransferred);
auto msgPackObject = handle.get();
MyCustomType object;
msgPackObject.convert(object);
现在对象包含了我所有的数据。但是我有不同的MyCustomType
对象。有没有办法在转换之前获取类型?那么我可以使用switch语句吗?
或者,我必须使用一些try-catchs
,我想避免使用。
谢谢