«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» означает стандартную библиотеку, точно так же, как все теперь знают, что «C ++» является стандартизированным языком ISO.
Сюда также входят те, кто считает, что это на самом деле не имеет значения, пока все стороны понимают, о чем идет речь.
Этот термин стал еще более распространенным в природе зверя, во многих из которых широко используется функция C ++, известная как «шаблоны».
Для "Стандартной библиотеки C ++" (или stdlib)
Однако есть еще одна школа мысли, на которую я подписываюсь, которая говорит, что это сбивает с толку. Люди, изучающие C ++ впервые , не знают этого различия и могут не заметить небольших языковых различий.
Автор этой статьи неоднократно сталкивался с людьми, которые считают, что вся стандартная библиотека C ++ является STL, включая функции, которые никогда не были частью самого STL. Напротив, большинство сторонников "STL" точно знают, что они имеют в виду, и отказываются верить, что не все "понимают" это. Понятно, что использование термина не является единообразным.
Кроме того, есть некоторые STL-подобные библиотеки, которые на самом деле являются реализациями исходного STL, а не Стандартной библиотеки C ++. До недавнего времени STLPort был одним из них (и даже там, путаница изобилует!).
Кроме того, стандарт C ++ нигде не содержит текста «STL», и некоторые люди обычно используют такие фразы, как «STL включен в стандартную библиотеку C ++», что совершенно неверно.
Я считаю, что продолжение пропаганды использования термина таким образом приведет к недоразумению, которое будет продолжаться вечно. Увы, попытка изменить ситуацию может быть совершенно непродуктивной, даже если это должно быть к лучшему. Мы можем быть застряли с двойным смыслом навсегда.
Вывод
Я ценю, что этот пост был немного предвзятым: я написал статью, на которую вы ссылались. :) Во всяком случае, я надеюсь, что это поможет объяснить битву немного лучше.
Обновление 13/04/2011
Вот три прекрасных примера того, кто использует «STL» для ссылки на всю стандартную библиотеку C ++. Меня продолжает сбивать с толку то, что так много людей слепо ругаются, что никто этого не делает, когда это видно почти каждый день.