由于我要掩盖的原因,我需要留出固定大小的空间,然后使用boost序列化来存储对象。归档格式的选择是任意的,可移植性不是问题。
该类相当复杂(成员包括基本类型,数组,指针和子类),并保证随着时间的推移而增长。
有没有人值得评估他们信任的猜测?空间很重要,但并不是很重要。我正在寻找相对简单的答案,如“2 *(sizeof X)for binary”或“4 * number of members + 3 * sizeof(X)if you you like text archives”。
由于
答案 0 :(得分:2)
没有回应,所以这是实验所显示的。
从我们的应用程序来看,一个班级有大约190名成员,sizeof(A)= 12704.由于指针的缘故,实际总大小有点羞怯。
binary_oarchive的大小为13981,text_oarchive为21237.这是针对默认特征的,并且还注册了一个包含六种派生类型的存档。
所以,我将使用2 * sizeof(A)作为文本存档的上限,对于二进制文件可能使用1.5 *。