0
std::ostringstream oss;
boost::archive::text_oarchive oa(oss); 

我向这个 oa 添加可变数量的内容,像这样

    oa & int1;
    oa &int2;
--------------------> insert number of matrices here
    oa & matrix1;
    ..//do some processing
    oa & matrix2; 
    ...//do some more
    ....
    oa & matrixn;

矩阵参考 - http://robot.kaist.ac.kr/haptics/chai3d-2.0.0_Doc/resources/html/structc_matrix3d.html

现在,当我完成时,我想在 udp 发送之前插入我添加到此存档中的矩阵数量,然后再开始添加矩阵。但我也知道我添加了多少矩阵,在我将它们添加到流中之后

我该怎么做?

4

1 回答 1

0

你不能做

oa & matrix1.

这样做矩阵必须是一个简单的类型(它不是)或实现函数序列化。您可以覆盖矩阵实现序列化,然后使用它。

这是一个很好的参考: http: //www.boost.org/doc/libs/1_54_0/libs/serialization/doc/tutorial.html

您实际上可以从 oss << (int)0; 然后在您将所有内容写回开头并使用您添加的项目数重写前 4 个字节之后。

于 2013-07-17T07:49:54.587 回答