2013-07-17 2 views
0
std::ostringstream oss; 
boost::archive::text_oarchive oa(oss); 

добавить переменное количество контента в этом оа, как этотКак вставить в середине строки в процессе сериализации?

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

Теперь в конце, когда я закончил, я хочу, чтобы вставить число матриц I добавлен в этот архив, прежде чем я начал добавлять матрицы до отправки udp. Но я также знаю, сколько матриц я добавил после добавления их в поток

Как мне это сделать?

ответ

0

Вы не можете сделать

oa & matrix1. 

Для этого матрица должна быть простой тип (который он не является) или реализовать функцию Serialize. Вы можете переопределить сериализацию матрицы, а затем использовать это.

Это хороший исх: http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/tutorial.html

Вы можете actualy начать с ОСС < < (INT) 0; после того, как вы напишете все seekp назад к началу и перепишите первые 4 байта с количеством добавленных вами элементов.

+0

Я уже сделал это ... с спецификатором доступа друга –

+0

Вы имеете в виду и реализовали сериализацию? – madnut

+0

да..и сделал это уже –

Смежные вопросы