Вот думаю насколько эффективно использование boost'а. Библиотека довольно удобная. Много всяких шаблонов, готовых классов. Т.е. абстрагирование кода от конкретных АПИшек уже произведено. Можно без особых проблем писать мультиплатформенный софт. Обычный STL сильно ограничен. Есть только списки, массивы, строки и пр. Даже с потоками там сильная напряжёнка. ATL - вообще кривущее создание, про него и говорить не будем. С другой стороны, за что я люблю STL - это за то, что при отладке переменные отображаются в удобочитаемом виде (в Visual Studio). Легко можно посмотреть элементы вектора, списка и т.п. Если использовать стороннюю библиотеку шаблонов, то такая возможность пропадает. Ещё меня интересует эффективность бустовского кода. Где-нибудь есть сравнительные тесты boost, стандартного stl?
> stl у каждого компилятора своя stl - часть стандарта. реализации может быть и различаются, однако интерфейсы - одинаковы. stl и boost совсем не конкуренты, они находятся в разных плоскостях.
n0name реализации не "может быть различаются", а различаются. cupuyc'у надо быстродействие, что толку ему с одинаковых интерфейсов %) > stl и boost совсем не конкуренты, они находятся в разных плоскостях. хз какие разные плоскости, часть буста - это std::tr1, соответственно часть STL - это буст
Вообще-то VS читает правила отображения объектов сложных типов из текстового файлика Common7\Packages\Debugger\autoexp.dat. Куда нетрудно добавить свои правила отображения по образу и подобию стандартных. Так что возможность не пропадает.
Интересно.. А нет никакого диалога настройки отображения? С текстовым файлом не очень удобно возиться.. И несколько странно, что MS для своих AtlArray'ев сразу не задала соответствующие настройки отображения. Фичу прикрутили, а её функциональность толком не использовали..
cupuyc Boost можно рассматривать как экспериментальное расширение STL. Со временем код boost перетекает в STL. Что касается эффективности - сильно зависит от адекватности применения, будь то STL или Boost. Что, в свою очередь, требует изучать не только интерфейсы, но и внутренности библиотеки.
Господа! 1) STL - это часть стандарта языка С++ и над его оптимизацией бьются разработчики компиляторов. 2) в следующий стандарт языка С++ обещали включить большую часть BOOST, то бишь он станет на ровне с STL ИМХО "STL vs BOOST" это все равно что STL vs STL или BOOST vs BOOST.... да возможно сейчас еще не все компиляторы "заточены" для оптимизации BOOST-а, но думаю это случить довольно скоро.
Hairy не всегда. например для студии, STL пишет Dinkum. скорее меньшую это - несопоставимые сущности.
#5 Имеют одинаковые интерфейсы, значит и быстродействие можно сравнить. Так? Можно взять какой-нибудь проект и заменить стандартный стл на буст, провести профайлинг. А над оптимизацией буста бьются разработчики буста. Причём, насколько я понял, над бустом работает не одна компания. Некоторые модули написаны, например, Adobe. О чём говорит ваше утверждение - не понятно.
2RedLord время покажет.... а сравнить можно все, даже жопу с пальцем пожалуйста: http://www.boost.org/doc/libs/1_43_0/libs/fusion/doc/html/fusion/container/vector.html и даже map: http://www.boost.org/doc/libs/1_38_0/libs/fusion/doc/html/fusion/container/map.html ... и еще туева хуча всего
Hairy это вектор, имеющий ?????? насколько я вижу -нет. а это правда. и некоторым блестяще это удается.
2RedLord не важно кто пишет, важно что данный момент включен в компилятор время покажет 2maksim_ о том что некоторые вещи физически нельзя соптимизировать на существующих компиляторах, и более эффективно оптимизировать их в самих компиляторах Кстати об Adobe и т.п. у меня хороший товарищ работает в отделе компиляторов Intel (оптимизации), так вот основные заказчики у них это как раз Adobe, Oracle и т.д. и многие "фишки" или требуемые "моменты" как раз оптимизируют не разработчики Adobe или Oracle а именно разработчики компиляторов (под конкретную архитектуру). 2RedLord по-моему очень даже можно сравнить, при желании Вы так не находите? Код (Text): STL: Iterators: begin end rbegin rend Capacity: size max_size resize capacity empty reserve Element access: operator[] at front back Modifiers: assign push_back pop_back insert erase swap clear BOOST: Iterators: begin end rbegin rend Capacity: size max_size resize capacity - отсутствует empty reserve - в составе resize Element access: operator[] at - отсутствует front - begin back - end Modifiers: assign push_back - отсутствует pop_back - отсутствует insert - insert_element erase - erase_element swap clear ... или Вам нужно 100% совпадение название методов? 2RedLord если Вы это про меня, то могу посоветовать брызгать слюной где-нибудь в другом месте, так как это не помогает конструктивному общению
maksim_ если я правильно смотрю, то push_back выглядит fusion так: fusion::vector2<int, long> v(fusion::push_back(fusion::push_back(empty, 123), 456)); в STL std::vector<int> x; x.push_back(123); кроме того, в бусте - вектор может хранить различные типы, чего в STL - нет