【发布时间】:2014-12-17 04:52:38
【问题描述】:
可以/如何使用cereal 库序列化数组。
即
void save(Archive & ar, const unsigned int version) const
{
unsigned int l = g1_size_bin(g,POINT_COMPRESS);
uint8_t data[l];
memset(data, 0, l);
g1_write_bin(data, l, g,POINT_COMPRESS);
ar(l);
ar(data); // what should be here
}
那行不通(我也不希望它也这样)。也没有
ar(cereal::binary_data(data,l));
(我认为这会起作用,因为它看起来像人们会使用的 boost 代码),这会产生编译错误:
/usr/local/include/cereal/cereal.hpp:79:17: 注意:候选模板被忽略:替换 失败:可变修改类型'unsigned char (&)[l]'不能用作模板 争论 BinaryData binary_data(T && data, size_t size )
也没有
ar.saveBinaryValue(data,l);
由于该方法似乎只支持 XML/Json,我想要一个二进制存档。
【问题讨论】: