Когда вы должны использовать STL, отличный от того, который поставляется с вашим компилятором? - PullRequest
29 голосов
/ 10 ноября 2009

Мне было любопытно узнать о реализации STL за пределами того, что упаковано в gcc или Visual Studio, поэтому быстрый поиск в Google нашел несколько результатов, таких как:

При каких обстоятельствах следует использовать альтернативную стандартную библиотеку шаблонов?

Например, на странице Apache есть список, включающий такие элементы, как «полное соответствие стандарту C ++» и «оптимизированный для быстрой компиляции и чрезвычайно малых размеров исполняемых файлов». Если это так хорошо, почему бы не заменить libstdc ++?


Для полноты, вот некоторые из других реализаций STL:
  • STLPort
  • STXXL (что является своего рода специального назначения, предназначенного для больших наборов данных, которые не помещаются в памяти)
  • Dinkumware (коммерческий)
  • SGI STL
  • libstdc ++ (реализация GCC)

Ответы [ 13 ]

1 голос
/ 10 ноября 2009

Одна из причин заключается в лучшей безопасности нитей. Я использовал STL по умолчанию, поставляемый с Visual Studio (VC6), затем мне пришлось перейти на STLPort, так как он имел намного лучшую безопасность потоков.

1 голос
/ 10 ноября 2009

В настоящее время мы используем STLPort - внешнюю реализацию STL, потому что мы должны (по разным причинам) использовать довольно старый компилятор Microsoft Visual C ++ 6.0 (дата выпуска 1998 года), а библиотека, поставляемая компилятором (Dimkunware), конечно, очень устарела. .

0 голосов
/ 10 ноября 2009

MSVC ++ и GNU g ++ поставляются с довольно хорошими реализациями стандартной библиотеки C ++, но есть компиляторы, которые этого не делают, и если бы мне пришлось поддерживать такие компиляторы, я бы искал стороннюю реализацию STL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...