![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
как избавиться от какого-то префикса который пишется перед данными класса?
получается "dcba", 00, 00, "rewq" а хотелось бы без этих двух нулевых байт, и чтоб конечно обратно читалось Это сообщение отредактировал(а) GoldFinch - 1.7.2009, 19:11 |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
сколь я понимаю это сам "id класса". Ты можешь поставить брейкпоинт в basic_ostream::write и прогуляться по стеку в поисках того, кто пишет, наверняка там будет ответ и зачем...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
мне больше кажется что это версия, хотя она unsigned int version
от этого избавитсья както можно? я хочу юзать буст::сериализацию для приема\отправки данных в готовую программу, и там не должно быть ничего лишнего Добавлено через 5 минут и 47 секунд а где кстати про буст почитать можно, кроме boost.org, а то там информации почти нет |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
bsa, я новичек в бусте %)
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
немного потрассировав реализацию архива, у меня сложилось впечатление, что эти лишние 2 байта - id объекта, версия и т.п. - записываются внутри базовых классов, и от них никак не избавиться.
похоже придется писать полностью свою сериализацию |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
может реализовать свой архив используя инфраструктуру boost::serialization?
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
Lazin, код который мне нада убрать находится в
boost::archive::detail::basic_oarchive_impl::save_object() это часть инфраструктуры boost::serialization |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
GoldFinch, я никогда не использовал boost::serialization, но мне кажется, что boost::archive::detail::basic_oarchive_impl::save_object() куда-нибудь делегирует сохранение этого заголовка... иначе как можно было написать столько разных архивов?
Добавлено через 40 секунд в документации должно быть что-нибудь на эту тему |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
Lazin, оно использует тот же архив для сохранения.
типа версия объекта int ver, и оно вызывает *this<<ver а архив-то не знает что за int в него записали Добавлено через 3 минуты и 59 секунд в документации написано
что говорит о том, что так и задумано, что служебная информация пишется потрохами библиотеки там есть методы позволяющие дописать еще и свою служебную информацию, но нет способа избавиться от родной |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
хм... а может я и неправ...
в документации ничего нет, зато в каментах в коде много интересного, например
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
да, действительно, написав такой класс, я избавился от этого префикса
однако, для моей задачи надо еще переопределить сохранение строк и массивов, (у буста с префиксной длиной, мне надо без нее) и т.п. и т.д. вобщем если написать то что надо мне используя буст, потребуется переопределить больше половины инфраструктуры буста, причем большая часть кода будет связана не с самим процессом сериализации, а борьбой с бустом. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |