«STL» был написан Александром Степановым за несколько дней до стандартизации C ++.C ++ существовал в течение 80-х годов, но то, что мы сейчас называем « C ++ », является языком, стандартизованным в ISO / IEC 14882: 2014 (и более ранних версиях, таких как ISO / IEC 14882: 2011).
STL уже широко использовался в качестве библиотеки для C ++, предоставляя программистам доступ к контейнерам, итераторам и алгоритмам.Когда произошла стандартизация, языковой комитет разработал частей Стандартной библиотеки C ++ (которая является частью языкового стандарта), чтобы очень точно соответствовал STL.
БолееВ течение многих лет многие люди, включая выдающихся авторов книг и различные веб-сайты, продолжали называть Стандартную библиотеку C ++ «STL», несмотря на то, что эти две сущности являются отдельными и существуют некоторые различия.Эти различия еще более заметны в грядущем новом стандарте C ++, который включает в себя различные функции и существенно изменяет некоторые классы.
Оригинальный STL теперь часто называют «реализацией стандартной библиотеки шаблонов C ++» (скорее в обратном направлениифактическая история!), так же, как ваша Microsoft Visual Studio или GCC поставляет реализацию стандартной библиотеки C ++.Но «Стандартная библиотека шаблонов» и «Стандартная библиотека» - это не одно и то же.
Битва идет о том, должна ли текущая Стандартная библиотека называться «STL» полностью или частично, и / илиимеет ли значение то, что называется.
Для «STL»
Существует школа мысли, которая говорит, что теперь все знают, что «STL» означает стандартную библиотеку,точно так же, как теперь все знают, что "C ++" является стандартизированным языком ISO.
В него также входят те, кто считает, что это на самом деле не имеет значения , пока все стороны понимают, что происходито котором говорили.
Этот термин стал еще более распространенным по природе зверя, большая часть которого широко использует функцию C ++, известную как "шаблоны".
For "Стандартная библиотека C ++ "(или stdlib)
Однако есть еще одна школа мысли, на которую я подписываюсь, которая говорит, что это сбивает с толку.Люди, изучающие C ++ впервые , не знают этого различия и могут не заметить небольших языковых различий.
Автор этой статьи много раз встречал людей, которые считают, что весь стандарт C ++Библиотека является STL, включая функции, которые никогда не были частью самого STL.Напротив, большинство сторонников "STL" точно знают, что они имеют в виду, и отказываются верить, что не все "понимают" это.Понятно, что использование этого термина неодинаково.
Кроме того, существуют некоторые библиотеки, подобные STL, которые на самом деле являются реализациями исходного STL, а не Стандартной библиотеки C ++.До недавнего времени STLPort был одним из них (и даже там путаница изобилует!).
Кроме того, стандарт C ++ не содержит текст "STL"где-нибудь, и некоторые люди обычно используют такие фразы, как «STL включен в C ++ Standard Library», что совершенно неверно.
Я убежден, что продолжение пропаганды использования этого термина просто приведет к недоразумению, которое будет продолжаться вечно.Увы, попытка изменить ситуацию может быть совершенно непродуктивной, даже если это должно быть к лучшему.Возможно, мы застряли с двойным смыслом навсегда.
Заключение
Я ценю, что этот пост был немного предвзятым: я написал статью, на которую вы ссылались.:) Во всяком случае, я надеюсь, что это поможет объяснить битву немного лучше.
Обновление 13/04/2011
Вот три совершенных примеров того, кто использует «STL» для ссылки на всю стандартную библиотеку C ++.Меня продолжает сбивать с толку то, что так много людей клянутся слепыми, что никто никогда не делает этого, когда это видно почти ежедневно.