【发布时间】:2014-01-08 18:45:36
【问题描述】:
有什么方法可以序列化指向原语的指针而不将其包装在类中?
我注意到对以下问题的评论,它需要在程序中跟踪该类型的所有原语,我猜这可能会减慢序列化速度。但如果我对此没意见怎么办?有没有办法为所有原始类型启用跟踪?
How do I serialize a class containing pointers to primitives?
我发现这个线程(从 2006 年开始)也暗示了这个问题。似乎应该可以序列化指向原语的指针,但是缺乏跟踪使它成为您可能不想要的东西。它似乎暗示了这种可能性,但没有解释它是否曾经实施过。
【问题讨论】:
-
只需将它包装在一个类中......这是明智的做法。有什么反对意见?
-
这是一个复杂的场景。但它与创建使用 C++ 代码的 sn-ps 的 DSL 有关。我希望 DSL 的用户能够使用他们习惯的 C++ 类型。
-
我看不出 DSL 是如何相关的(除非我把图片颠倒了,并且你(ab)使用序列化来解析 DSL)。我假设类似基于 Proto 的 eDSL(表达式模板)?在这种情况下,没有什么能阻止你改变 ast。或者,如我所愿,使用 Boost Spirit Karma 编写序列化并绕过整个“问题”
-
这很好,我可以在生成代码的同时翻译类型。现在,我试图避免对 C++ 代码进行大量解析,并且在大多数情况下只是通过 sn-ps 而不进行修改。
标签: c++ serialization boost