Сейчас сидел и искал в плюсах аналог LinkedHashSet’a. Нужен был контейнер, который бы одновременно не допускал “одинковых” элементов, и, при этом, сохранял insertion order. Оказалось, что лучше всего для этих целей пользоваться Boost.MultiIndex
Archive for February, 2007
JAXP для CPP
Arabica претендует на то чтобы быть “стандартом” в мире XML для плюсов. Во всяком случае кроме собственной имплементации предоставляет, возможности использовать другие xml-либы.
Посмотрим-с…
13.03.07: Посмотрели: ни на что тенденциозное arabica не претендует. Просто ОЧЕНЬ удобный и маленький парсер. У меня заняло 20 мин, чтобы распарсить xml’ину SAX’ом. При сборке, он прочухал, что в системе стоит libexpat, и, насколько я понял, делигирует ему реальную работу. На работе народ парсит xml xerces’ом. Код сильно не отличается, хотя я глубоко и не вникал пока в чём разница, и, надеюсь, что не придётся :-). Xerces гораздо больше Арабики. Это объясняется тем, что она смело использует stl и boost, в то время как xerces гоняется за переносимостью, поэтому таскает весь второстпенный (утилитарный) код с собой.
Линуховый портал, который мне понравился
Правда это был всего лишь первый мимолётный всгляд
polishilinux.org
Про boost::assign
Ну очень мне понравилась возможность: vector v; v += 1, 2, 3, 4;
Оригинальная документация
Чтобы использовать эти бонусы требуется:
1. include <boost/assign.hpp>
2. using namespace boost::assign
Про boost::bind
Avoid recursive make
Проникся соображениями о вреде рекурсивного вызова make изложеными в статье, которую можно найти здесь: Recursive Make Considered Harmful
Также нашёл подробное описание, что делать, чтобы избежать рекурсии:
Implementing non-recursive make
Американцы спели Цоя. Группа Brazzaville.
Американцы спели Цоя. После прочтения статьи возникло желание послушать музыку этой группы.
02.02.07:Скачал, послушал. Понравилось. А что понравилось ОЧЕНЬ – Sewers of Bangkok из альбома 2003его года.
Makefile’ы
Не умею писать makefile’ы. Надо бы разобраться…
Не могу сказать, что мне она понравилась, но кое-чего от туда почерпнул, чего раньше не знал. А именно:
makefile.dep: *.cpp
for i in *.cpp ; do gcc -I${MAIN_DIR} -MM "$${i}"; echo -e "\tg++ -I${MAIN_DIR} -c $<"; done > $@
В приведённом примере для всех объектников создаётся один dependency-файл. Существует ещё один подход, когда для каждого объектника создаётся свой depenency файл. Описано в Autodependencies with GNU make. Хотя этот подход мне меньше пришёлся по душе.
06.03:How to write a Makefile