【发布时间】:2016-12-16 18:28:44
【问题描述】:
我一直在寻找能够序列化完全未知对象的东西。
我知道 Qt 有一个 serialization 功能,它也适用于 qvariant 对象。这是否意味着我可以将任何复杂的对象传递给 QVariant(即也具有指针和/或指针循环的对象)并序列化该对象?
好像也是boost::any isn't supported by serialization。
由于在 C++ 中缺乏反射,如果不编写我自己的特定类型序列化例程,这是否不可能?
【问题讨论】:
-
“未知对象”是什么意思?你能用一个你想要实现的例子来编辑你的问题吗?
-
@wasthishelpful
unknown object表示unknown object.. 它可以是任何类型的 C++ 对象,您可以在您选择的任何项目的 github 上找到。 -
这不是未知的,那是未定义的,也许是未声明的 :) 这就是为什么我要一个示例来说明您希望最终代码如何工作,以从编译器的角度弄清楚未知的含义
-
@wasthishelpful 在你的程序中编译的东西,你可以传递给
template<typename T> void serialize(T&& obj);函数。 -
A
QVariant不能保存任意类型。来自the documentation:“QVariant 类的作用类似于最常见的 Qt 数据类型的联合。”
标签: c++ qt serialization boost