STLport 4.0
14 июля 2000 года наконец-то вышла новая версия библиотеки
STLport 4.0.
Для тех, кто еще не в курсе, что это такое, объясняю: это
свободно распространяемая реализация стандартной библиотеки шаблонов
для множества различных компиляторов и операционных систем.
Кроме всего прочего, STLport дотсупен не только для современных
компиляторов, более или менее удовлетворяющих стандарту языка, но
и для некоторых старых компляторов, например Borland C++ 5.02
или MS Visual C++ 4.0.
Четвертая версия STLport отличается от предыдущей прежде всего
тем, что теперь в нее входит полная поддержка
потоков (ранее приходилось использовать потоки из
библиотеки, поставляемой с конкретным компилятором). Реализация
потоков взята из SGI (как, впрочем, и весь STLport). Вообще,
STLport начал развиваться как попытка Бориса Фомичева
перенести ивзестную библиотеку SGI STL на gcc и sun cc.
Таким образом, с выходом четвертой версии, STLport стал
полноценной библиотекой, соответствующей стандарту языка,
во всяком случае, у него появились претензии на это.
Понятно, что использование одной и той же библиотеки
на разных платформах, это уже большой плюс --- потому
что никогда точно заранее не известно, что где и как
будет плохо себя вести. Можно лишь гарантировать, что
программа, при переносе с одного компилятора на другой,
все-таки будет себя плохо вести даже в том случае, если скомпилируется.
Использование одной библиотеки шаблонов очень сильно повышает
шансы на то, что не будет крепкого мата тогда, когда
программист увидит отсутствие в STL нового компилятора
какого-нибудь контейнера. Например, в g++-stl-3 нет
std::wstring. То есть, шаблон
std::basic_string есть, и std::string
является его инстанционированием на char,
но попытка подставить туда же wchar_t ни к чему
хорошему не приведет (в частности, из-за того, что в методе
c_str() есть замечательная строчка вида
return "").
Но и кроме единых исходных текстов у STLport есть еще несколько
интересных возможностей и особенностей. Во-первых, это
debug mode, при котором проверяются все условия, которые
только возможны. Например, в этом режиме при попытке работать
с неинициализированным итератором будет выдано соответствующее
ругательство. Согласитесь, это удобно.
Во-вторых, в STLport есть несколько нестандартных контейнеров, таких
как hash_map, например. Зачем? Ну, потому что стандартный
map обычно реализован на сбалансированных деревьях
поиска (как более общий способ обеспечения быстрого поиска при разнородных данных),
и что делать в том случае, когда все-таки известна хорошая хеш-функция для
конкретных элементов,
не особенно понятно (ну, кроме того, что бы написать подобный
контейнер самостоятельно).
В третьих, поддержка многопоточности. То есть, STLport можно безопасно
использовать в программах, у которых более одного потока выполнения.
Это досталось STLport еще от SGI STL, в которой очень много внимания
уделялось именно безопасности использования.
Резюме
STLport является той библиотекой, которую я в последнее время стараюсь
использовать где только можно. А для g++ на win32 так и вообще постоянно.
Поэтому я был очень рад тому, что в 4-ой версии появилась поддержка
mingw32.
Так что, если вдруг появились какие-то проблемы с STL,
то можно попробовать взять STLport --- быть может, проблем станет поменьше.
Версия для печати
| | Ссылки по теме: |
 |
| | Рядом в разделе: |
 |
| Новый язык программирования от Microsoft: C# (23.07.00) |
| |
Честно говоря, когда я первый раз об этом услышал, я подумал что это чья-то дурацкая шутка. Но нет, действительно, фирма Microsoft... >>>>
|
| Правило "право-лево" (17.07.00) |
| |
Этот текст не мой. Авторство принадлежит Alexander V. Naumochkin (к сожалению, знаю только адрес в сети FIDO, 2:5020/59), на мой взгляд,... >>>>
|
|
 |
| | Рядом по дате: |
 |
| Схватка / Heat, 1995 (21.07.00) |
| |
Этот фильм сразу же привлекает внимание своими актерами: Аль Пачино и Роберт Де Ниро в главных ролях, это что-то да значит.... >>>>
|
| Матрица / Matrix, 1999 (19.07.00) |
| |
Этот фильм уже есть в заметках у Экслера, настоятельно рекомендую перед чтением моего комментария . Собственно, не буду пересказывать сюжетную линию... >>>>
|
|
| | Содержание: |
 |
|
|
| | В этом разделе: |
 |
| Простой, но полезный аллокатор памяти (18.02.03) |
| |
Эта заметка --- продолжение "Postfix изнутри" в том смысле, что в качестве примера опять берется postfix. Но если в прошлый раз... >>>>
|
| C или C++? (09.07.01) |
| |
Существуют два диаметрально противоположенных, но одинаково распространенных мнения, которые можно выразить как "C++ это C с классами" и "C++ и C... >>>>
|
| Религия и goto (14.04.01) |
| |
Начнем несколько издалека. В программировании существует тенденция к алгоритмизации самого процесса программирования. То есть, выведение некоторых универсальных правил, использование которых в... >>>>
|
| ploticus (16.10.00) |
| |
Есть такая программа, предназначенная для создания графиков различных видов из командной строки, называется ploticus. Программа сама по себе достаточно удобная ---... >>>>
|
| Шаманство, или ошибки работы с памятью (25.09.00) |
| |
Когда программа становится внушительной по своему содержанию (то есть, не по количеству строчек, а по непонятности внутренних связей), то ее поведение... >>>>
|
| Библиотека консорциума W3, libwww (20.09.00) |
| |
Популярный нынче термин "веб-программирование" обычно подразумевает под собой программирование, в лучшем случае, на perl, в худшем --- на PHP, в совсем... >>>>
|
| Инварианты внутри программы (18.09.00) |
| |
Вы когда-нибудь задумывались, над тем, как вы пишите программы? Если нет, то, я думаю, сегодняшняя заметка будет вам полезна. Итак, как... >>>>
|
| Содержание раздела полностью... |
| |
Примерно в тоже время |
 |
| Схватка / Heat, 1995 (21.07.00) |
| |
Этот фильм сразу же привлекает внимание своими актерами: Аль Пачино и Роберт Де Ниро в главных ролях, это что-то да значит.... >>>>
|
| Матрица / Matrix, 1999 (19.07.00) |
| |
Этот фильм уже есть в заметках у Экслера, настоятельно рекомендую перед чтением моего комментария . Собственно, не буду пересказывать сюжетную линию... >>>>
|
| Хронология полностью... |
| |
Содержание |
 |
| Заглавная страница |
| Мой блог |
| Мое резюме |
| Дайджест |
| Программирование |
| |
C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
|
| TeX |
| Туризм |
| |
Байки
Фотографии
|
| Комментарии |
| |
Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
|
| Студенческое |
| Просто так |
| Благодарности |
| Форум |
| Хронология |
|