Home

Advertisement

boost::serialization

  • Apr. 15th, 2008 at 12:55 AM
feterny-bird
Ох, и пришло же кому-то в голову задать нам такое задание по С++: сделать иерархию графических объектов, и + уметь сохранять в файл/загружать из файла.

Я посчитал, что в лучших традициях С++ я не буду громождить очередной костыльный велосипед, а возьму готовую библиотеку. На роль этой библиотеки, кроме как serialization из буста, мало что подходило: ведь требуется автоматическая сериализация полиморфных объектов из указателей.

Всё бы хорошо, документация хорошая, за полчаса я усвоил всё, что надо... пока дело не дошло до отладки. Не знаю, у кого как, а я впервые увидел backtrace на 100+ функций, из которых ~80 - бустовские с полным названием символов на 100-300.

Кроме того, в процессе сериализации есть ещё одна засада. Если вы попытаетесь сериализировать объект, тип которого не зарегистрирован (ну бывает, забыли прописать), то будет выдан exception - "type unregistered". И хотя ни черта не понятно, какой тип не зарегистрирован, хотя бы понятно, куда копать.
Но вот если вы забудете регистрацию при десериализации, то segfault в библиотечной функции load_pointer - всё, на что вы можете рассчитывать.

Но я-таки поборол. Набор объектов из файла и обратно ходит прекрасно. Ну и фиг, что кроме этого я ничего не успел - ни отчёта, ни управления, собственно, фигурами на форме. Зато [де]сериализация пашет :)

cscope

  • Apr. 12th, 2008 at 3:40 PM
feterny-bird
Сегодня открыл для себя утилитку всякого-разного поиска по C[++]-файлам - cscope. Хорошо иногда рыться по зависимостям vim'а :)

UPD: исправил название, букву забыл :)

Менеджер памяти осилен.

  • Sep. 23rd, 2007 at 12:46 AM
feterny-bird
Вот он. Доотлаженный. И первый опыт по написанию этих самых реальных менеджеров памяти на С++-ах.
Ровно целый день, с утра до вечера я с ним провозился.

Ну и что, что он работает в несколько раз медленнее штатного менедежера памяти. Ну и что, что выделенную память отдает не очень хорошо. Зато работает...
feterny-bird
4.3.0!

Наконец-то разрешились мои давние зависимости со старыми locales (спасибо aptitude), и смог-таки себе поставить libqt4-dev - пакет для разработки под QT4. В очередной раз поставилось всё идеально. Ну и плюс - опять-таки разработчикам и майнтейнерам респект за пакет qt4-doc. Весит, конечно, 20 метров с лишним, зато я уже оценил его продуманность и полезность. Хотя я сейчас только начал проходить туториал, но уже много чего умею :)

Вот один из тестовых примеров + выполненное дополнительное задание:



И всё под чистым Линухом, всё свободно :) собирается методом

qmake -project; qmake; (первый раз)
make; (пересборка)

Очень надеюсь, что это наконец положит край моей работе с Borland C++ Builder.

Черновик стандарта С++09

  • Jun. 12th, 2007 at 3:03 PM
feterny-bird
Хороший человек с форума перевел на русский и добавил от себя комментарии к новым фичам языка С++, указанным в черновике к новому стандарту.
Читаем здесь

Мои комментарии в той же теме, кому интересно.