Здравствуйте, Alexey Chen, Вы писали:
AC>Угу, и еще куча идеотских макросов, по причине которых проект может и не собраться, причем в самый неудачный момент.
Очень интересно — собирался собирался (ждал наверное, когда придет "самый неудачный момент" ), а тут вдруг не собрался. Странно как то. А если под "кучей идеотских макросов" ты подразумеваешь дефайны настроек, так к ним неплохие (ИМХО) комментарии имеются, да и в документации обычно написано, что и как.
AC>А понять почему.... задолбаешся.
Я не спорю — исходники STLPort не самые читабельные, но ведь можно и у людей спросить — что к чему.
AC>Надо понимать, что если ты используешь то, что в пакет компилятора не входит, то и трахаться с этим тебе придется самому.
А трахаться с "родной" STL кто-то за тебя будет? ИМХО это не аргумент.
AC>И результата никто не гарантирует.
Ну, волков бояться — в лес не ходить
Любите книгу — источник знаний (с) М.Горький
STLPort
От:
Аноним
Дата:
04.02.04 07:41
Оценка:
Не скажите для чего нужен STLPort и чем он лучше STL по умолчанию
Здравствуйте, Аноним, Вы писали:
А>Не скажите для чего нужен STLPort и чем он лучше STL по умолчанию
STLPort — это просто одна из реализаций STL, наряду с кучей других реализаций, и одна из этих "других" — твоя "по умолчанию" (т.е. поставляемая с твоим компилятором).
Поскольку совершенства в мире нет, то, что работало с твоей STL, может перестать работать, если ты соберешь программу другим компилятором с его STL. Знать особенности всех реализаций STL — большой геморрой, посему лучше уж изучить досконально одну (STLPort) и дальше использовать только ее со всеми попадающимися тебе компиляторами. Слово Port в STLPort означает, что библиотека будет одинаково работать на любой платформе и с любыми совместимыми с ней компиляторами (а это почти все компиляторы).
Ну и там еще есть всякие дополнительные вкусности сверх описанной в Стандарте STL, типа hash_map и т.п.
> Не скажите для чего нужен STLPort и чем он лучше STL по умолчанию
В каком компиляторе? В 6 Борланде STLPort и поставляется по умолчанию
А кроме того переносимость, хорошая производительность, отладочные итераторы
Короче http://stlport.org/product.html.
Здравствуйте, jazzer, Вы писали:
J>Ну и там еще есть всякие дополнительные вкусности сверх описанной в Стандарте STL, типа hash_map и т.п.
Угу, и еще куча идеотских макросов, по причине которых проект может и не собраться, причем в самый неудачный момент.
А понять почему.... задолбаешся.
Надо понимать, что если ты используешь то, что в пакет компилятора не входит, то и трахаться с этим тебе придется самому.
И результата никто не гарантирует.
А так да, STLPort, как STL — самый лучший STL из бесплатных, но я таки отдаю предпочтение более простому SGISTL'ю.
Здравствуйте, Alexey Chen, Вы писали:
AC>А так да, STLPort, как STL — самый лучший STL из бесплатных, но я таки отдаю предпочтение более простому SGI STL'ю.
Здравствуйте, Xentrax, Вы писали:
X>Здравствуйте, Аноним, Вы писали:
А>>Не скажите для чего нужен STLPort и чем он лучше STL по умолчанию
X>Когда зубная щетка недоступна... а именно, с компилятором никакой STL не поставляется (EVC 3.0), то STLPort очень нужен.
А ты полностью STLPort на EVC 3.0 перенес или только часть?
На EVC 4.0 — это реально, а вот на EVC 3.0 видимо только часть, но я не пробовал...
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, Alexey Chen, Вы писали:
AC>>Угу, и еще куча идеотских макросов, по причине которых проект может и не собраться, причем в самый неудачный момент. B>Очень интересно — собирался собирался (ждал наверное, когда придет "самый неудачный момент" ), а тут вдруг не собрался. Странно как то. А если под "кучей идеотских макросов" ты подразумеваешь дефайны настроек, так к ним неплохие (ИМХО) комментарии имеются, да и в документации обычно написано, что и как.
Нет, подразумеваются макросы включений и обертки вокруг некоторых операторов (типа new).
Solaris, gcc 3.x ? попробуй вкус наслождения.
Evc 3.0|4.0 проект делают 3 человека используются оба компилера. С SGISTL такого ...удовольствия не было.
Или мы только VC 6.0 рассматриваем? (имхо для VC 7.0 STLPort нафик не нужен). Это, типа, компатибилити?
AC>>Надо понимать, что если ты используешь то, что в пакет компилятора не входит, то и трахаться с этим тебе придется самому. B>А трахаться с "родной" STL кто-то за тебя будет? ИМХО это не аргумент.
ЭЭЭ, вы часто занимаетесь этим с родным STL? Наверно, вы выбрали неправильный компилер (или неправильный STL).
Обычно родной STL плотно прикручен к компилеру (иногда так, что не отвертишь).
AC>>И результата никто не гарантирует. B>Ну, волков бояться — в лес не ходить
Это просто предупреждение.
Не все, что блестит разными клевыми фичами есть рулез, очень часто лучше поюзать что-то более простое.
Здравствуйте, bkat, Вы писали:
X>>Когда зубная щетка недоступна... а именно, с компилятором никакой STL не поставляется (EVC 3.0), то STLPort очень нужен.
B>А ты полностью STLPort на EVC 3.0 перенес или только часть? B>На EVC 4.0 — это реально, а вот на EVC 3.0 видимо только часть, но я не пробовал...
Ну, скажем так, string, vector, _Bidit (который bidirectional_iterator теперь называется) у меня заработали.
Были проблемы с исключениями — там какие-то имена уже блыи определены и проблемы с operator new
Победил, отписался в форуме на сайте STLPort
В STLPort куча полезных условных директив — все настраивается почти, хотя с STLPort 4.5 было проще.
Сделал еше одну бяку правда — по стандарту mix и max входят в <algoritm>, а в CE они входят в stdlib, соответственно пришлось их их <algorithm> удалить условной компиляцией, так как исходники было в лом наши корежить.