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.

そのためには、行列を単純な型 (そうではない) にするか、関数 serialize を実装する必要があります。マトリックス実装のシリアル化をオーバーライドしてから、これを使用できます。

これは良い参照です: http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/tutorial.html

実際には oss << (int)0; で開始できます。次に、すべてを書き込んだ後、seekp を最初に戻し、追加した項目の数で最初の 4 バイトを書き換えます。

于 2013-07-17T07:49:54.587 に答える