如何在c ++中使用Msgpack减少编译时间?

时间:2017-10-09 20:00:12

标签: c++ msgpack

我发现能够序列化用户定义的结构很有用。我通常使用像

这样的东西
#include <msgpack.hpp>
struct MyStruct {
     int val;
     MSGPACK_DEFINE_MAP(val);
};

然后将其包含在任何需要它的地方。我后来注意到编译时间很长。当我使用-H标志运行g ++时,我发现大约1/3的包含文件与msgpack相关。

有没有办法轻松使用msgpack,同时避免在任何地方重新包含标题并使编译时间膨胀?

1 个答案:

答案 0 :(得分:0)

我对msgpack并不是很熟悉,但我想到的第一个想法是pimpl课程。然后,我想知道pimpl是否可以用于序列化并查看msgpack文档。

用于定义msgpack映射器的

There is a non-intrusive方法。您可以将此代码放在单独的MyStruct_serialize.hpp文件中,并仅将其包含在您实际序列化类的位置。这样,大多数代码都不应该加载任何msgpack头文件。