首页 > 解决方案 > 谷物多态层次序列化深度

问题描述

所以我有以下问题。我有一个资产基类。然后我有一个派生自它的 Texture 类,从那里我有 VulkanTexture、OpenGLTexture 和 DirectXTexture,它们都继承了 Texture。序列化纹理时,我只需要纹理本身(因为它具有可以读/写数据的必要虚拟方法)而不是特定于 API 的。我正在序列化资产,并从那里Save(Archive, Texture)自动调用该方法,然后我调用archive(base_class<Asset>(texture)). Asset 和 Texture 是注册类型 usingCEREAL_REGISTER_TYPE并且它们的关系也被注册,但似乎我可能需要注册 VulkanTexture 并为其创建一个序列化函数。有没有办法解决这个问题,因为它需要更多的“无用”代码,因为我必须为很多课程做这件事?

标签: c++serializationpolymorphismcereal

解决方案


推荐阅读