Archive for CPP

Autoconf для ROOT’a

Leave a Comment

Boost.StringAlgorithms

Leave a Comment

Why STL SUXX !!!

Искал в инете как сделать String.startsWith на плюсах. Нашёл. Но нашёл не само по себе, а в очень интересном контексте: мужик последовательно и аргументированно объясняет почему STL – это плохо.
Why C++ Templates (and STL) Are Bad

Здесь пишу короткое саммари, чтобы не забыть, благо статья структурирована настолько хорошо, что это делается легко:
1. Плохо поддерживается IDE’шками
2. Идиотское API: ReadOnlyIterator и WriteOnlyIterator, вместо InputIterator и OutputIterator. Что за мудь при работе со строками? Где они startsWith и endsWith?
3. Приходиться оперировать поидиотски огромными струкурами данных: TODO: вписать из собственной практики

Leave a Comment

Boost.MultiIndex

Сейчас сидел и искал в плюсах аналог LinkedHashSet’a. Нужен был контейнер, который бы одновременно не допускал “одинковых” элементов, и, при этом, сохранял insertion order. Оказалось, что лучше всего для этих целей пользоваться Boost.MultiIndex

Leave a Comment

JAXP для CPP

Arabica претендует на то чтобы быть “стандартом” в мире XML для плюсов. Во всяком случае кроме собственной имплементации предоставляет, возможности использовать другие xml-либы.

Посмотрим-с…
13.03.07: Посмотрели: ни на что тенденциозное arabica не претендует. Просто ОЧЕНЬ удобный и маленький парсер. У меня заняло 20 мин, чтобы распарсить xml’ину SAX’ом. При сборке, он прочухал, что в системе стоит libexpat, и, насколько я понял, делигирует ему реальную работу. На работе народ парсит xml xerces’ом. Код сильно не отличается, хотя я глубоко и не вникал пока в чём разница, и, надеюсь, что не придётся :-). Xerces гораздо больше Арабики. Это объясняется тем, что она смело использует stl и boost, в то время как xerces гоняется за переносимостью, поэтому таскает весь второстпенный (утилитарный) код с собой.

Leave a Comment

Про boost::assign

Ну очень мне понравилась возможность: vector v; v += 1, 2, 3, 4;
Оригинальная документация

Чтобы использовать эти бонусы требуется:
1. include <boost/assign.hpp>
2. using namespace boost::assign

Leave a Comment

Про boost::bind

Leave a Comment