crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Сериализация списка указателей в boost
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 1.10.2010, 13:37
  да нет, у меня прекрасно всё получалось и с русскими буквами. просто надо поднимать старые проекты, а без кода нечего обсуждать.
а буст староват, мягко говоря. лучше бы обновить до 41 или 44 (наиболее свежие и наименее глючные версии).
madnessw Дата 1.10.2010, 10:04
  windows 7 , VS2008 + QT 4.6.1 + boost 1.38))

до этого некто не догодался тэстировать с русскими буквами))
код чуть позже скину)
Iron Bug Дата 1.10.2010, 9:58
  проверь локали на машине, если это линюкс. может банально не быть нужной локали. проверь опции юникода для компилера.
если не оно, то пиши пример, как конкретно ты сериализуешь и чем собираешь.
madnessw Дата 27.9.2010, 9:36
  Вышел интересный Баг в сериализации wstring : у меня boost отказывается сериализовать wstring который содержит русские буквы.....

Может кто сталкивался с добной проблеммой?
madnessw Дата 18.3.2010, 5:24
  Как всегда всё оказалось проще чем я дкмал)))
Почитав кучу доки я в boost нашол макрос BOOST_SERIALIZATION_BASE_OBJECT_NVP
мне нужно было заюзать макрос ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Items) и вуаля всё заработало)))

Насчёт стрельбы по воробьям из пушки: у буста она сильно точно стреляет и велосипеды у них хорошие , много функциональные))))

на этом тему можно считать закрытой))))
Iron Bug - спасибо за участие
Iron Bug Дата 16.3.2010, 10:26
  имхо, в такой ситуации лучше бы сделать синглтон, который работает непосредственно с конфигурацией, а в нём реализовать список элементов и сквозные массивы указателей на них (boost::intrusive).
ведь конфигурация - это обычно не то, что постоянно меняется и меняется неожиданно из разных мест.
городить сериализацию тэмплейтов - дело неблагодарное. а главное - из пушки по воробьям :)
madnessw Дата 16.3.2010, 4:23
  эо пример класса конфигурации есть несколько деревьев Item может находиться сразу в нескольких деревьяк(у нас они называются измерения)
я думал сначало сохранять всё в поток но понял что пытаюсь написать велосипед тк в бусте сериализация позволяет сохранять в бинарник в текст и в поток)
вот и думаю как это сделать))) по сути мне нужно сохранить список всех итемов и указателей а при загрузке востановить всё это дело в пямяти)
Iron Bug Дата 14.3.2010, 17:34
  я не совсем понимаю, нафига сериализовать такие сложные аггломераты, но люди пишут, что даже такой изврат возможен.
учимся пользоваться гуглом и в поиске по строке "boost serialization shared_ptr" находим вот это:
http://www.boost.org/doc/libs/1_42_0/libs/...shared_ptr.html

дальше читать всё это и усваивать.
но я бы не стала связываться с такими наворотами. да и автор статьи не рекомендует этого делать, ибо даже после всей этой возни остаются некоторые нерешённые вопросы.
а вообще, зачем тебе столько наворотов для сохранения в файл? может, всё куда проще решается, нежели чем через такие пампасы?
конечно, если хочешь, ковыряй статью, пиши кучу кода. это не возбраняется. но что-то мне подсказывает, что есть куда более простое решение для задачи, которую ты пытаешься решить.
madnessw Дата 13.3.2010, 18:15
  с wstring я разобрался в опциях прроекта переходим: Configuration properties -> C++ -> Langages->Treast wchar_t as Built-in type = <inherit from parent or project defaults>
и усё работает )))))))

теперь осталось только одно понять как сериализовать конструкцию типа

List<shared_ptr<Item>> pItemList , где Item - класс, а проще как сериализовать список умных указателей на класс?

Iron Bug - спасибо за совет)
Iron Bug Дата 12.3.2010, 18:10
  Буст поддерживает сериализацию wstring. Вроде бы он для этого должен быть скомпилен с ICU, хотя конкретно насчёт библиотеки сериализации точно не могу сказать, может, ей просто опцию какую-то надо указать при сборке. У меня буст собран с ICU и все юникодовские функции работают. Но не все комилеры поддерживают юникод. Например, mingw его не поддерживает.
Юзай wofstream и binary_woarchive, если компилятор позволяет. Если нет - то переводи в string и сериализуй как string, а потом обратно. Либо как бинарный поток.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.1.2025, 3:47