是否有像boost :: ant或boost :: variant这样的变体的实现,但是抽象接口呢?C++抽象变体实现
我想要的是在松散耦合的应用程序中传递DLL之间的变体。因此,如果一个DLL开始在变体中存储新的东西,我想避免更改所有其他DLL的代码。所有这些DLL都是用不同版本的VisualStudio和静态CRT链接构建的,所以不能在接口中使用STL类。提升依赖性也不受欢迎。那就是为什么我会使用抽象接口。
如果让我来实现它,我会做一个抽象接口与像MyVariantInterface::Get/SetData(int value_type_tag, byte* data) = 0
功能,可的DLL之间传递安全,加上一个模板包装允许方便储存,提取和做所有尺寸/类型检查一个DLL的范围内。
这样的事情已经存在吗?
您是否需要预定义类型或任意数量的用户定义类型?例如。来自QT的QVariant仅支持有限的类型,但如果您不依赖于QT,可能会拉得太多。 – Peter
不幸的是,我们并没有在项目范围内使用QT;( 用户定义的类型非常吸引人,而且预先定义的类型解决方案也是值得考虑的。 – Steed