Die "STL" wurde von Alexander Stepanov in den Tagen lange vor der Standardisierung von C ++ geschrieben. C ++ existierte in den 80ern, aber was wir jetzt " C ++ " nennen " nennen, ist die in ISO / IEC 14882: 2014 (und früheren Versionen wie ISO / IEC 14882: 2011) standardisierte Sprache.
Die STL wurde bereits häufig als Bibliothek für C ++ verwendet, um Programmierern Zugriff auf Container, Iteratoren und Algorithmen zu gewähren. Als die Standardisierung erfolgte, entwarf das Sprachkomitee Teile der C ++ - Standardbibliothek (die Teil des Sprachstandards ist) so, dass sie sehr genau mit der STL übereinstimmen.
Im Laufe der Jahre haben viele Menschen - darunter prominente Buchautoren und verschiedene Websites - die C ++ - Standardbibliothek weiterhin als "STL" bezeichnet, obwohl die beiden Entitäten getrennt sind und es einige Unterschiede gibt. Diese Unterschiede sind im kommenden neuen C ++ - Standard noch ausgeprägter, der verschiedene Funktionen enthält und einige Klassen erheblich verändert.
Die ursprüngliche STL wird heute häufig als "Implementierung der C ++ - Standardvorlagenbibliothek" bezeichnet (eher rückwärts zum tatsächlichen Verlauf!), So wie Microsoft Visual Studio oder GCC eine Implementierung der C ++ - Standardbibliothek ausliefert. Die "Standard Template Library" und die "Standard Library" sind jedoch nicht dasselbe.
Im Kampf geht es darum, ob die aktuelle Standardbibliothek ganz oder teilweise als "STL" bezeichnet werden soll und / oder ob es darauf ankommt, wie sie heißt.
Für "STL"
Es gibt eine Denkschule, die besagt, dass jeder jetzt weiß, dass "STL" die Standardbibliothek bedeutet, genauso wie jeder jetzt weiß, dass "C ++" die ISO-standardisierte Sprache ist.
Es schließt auch diejenigen ein, die glauben, dass es nicht wirklich wichtig ist , solange alle Parteien verstehen, worüber gesprochen wird.
Es ist ein Begriff, der durch die Natur des Tieres noch häufiger verwendet wird. In vielen Fällen wird die als "Vorlagen" bekannte C ++ - Funktion stark genutzt.
Für "C ++ Standard Library" (oder stdlib)
Es gibt jedoch eine andere Denkrichtung - der ich mich anschließe -, die besagt, dass dies verwirrend ist. Leute, die zum ersten Mal C ++ lernen nicht kennen diese Unterscheidung und nicht kleine sprachliche Unterschiede feststellen.
Der Autor dieses Artikels ist mehrfach auf Leute gestoßen, die glauben, dass die gesamte C ++ - Standardbibliothek vorhanden ist die STL, einschließlich Funktionen , die nie Teil der STL selbst waren. Im Gegensatz dazu wissen die meisten Befürworter der "STL" genau, was sie damit meinen, und weigern sich zu glauben, dass nicht jeder "es versteht". Die Verwendung des Begriffs ist eindeutig nicht einheitlich.
Darüber hinaus gibt es einige STL-ähnliche Bibliotheken, bei denen es sich tatsächlich um Implementierungen der ursprünglichen STL handelt, nicht der C ++ - Standardbibliothek. Bis vor kurzem war STLPort einer von ihnen (und selbst dort die Verwirrung !).
Des Weiteren wird der C ++ Standard - nicht den Text „STL“ enthalten überall, und einige Leute gewöhnlich Sätze beschäftigen wie „die STL ist enthalten in der C ++ Standard Library“, die schlicht falsch ist.
Ich bin der Überzeugung, dass die weitere Verbreitung der Verwendung des Begriffs auf diese Weise nur zu einem Missverständnis führen wird, das für immer andauert. Leider kann es völlig kontraproduktiv sein, zu versuchen, Dinge zu ändern, selbst wenn es zum Besseren sein soll. Wir können nur für immer mit Doppelbedeutungen stecken bleiben.
Fazit
Ich schätze, dass dieser Beitrag etwas voreingenommen war: Ich habe den Artikel geschrieben, auf den Sie verlinkt haben. :) Wie auch immer, ich hoffe das hilft, den Kampf ein bisschen besser zu erklären.
Update 13/04/2011
Hier sind drei perfekte Beispiele für jemanden, der "die STL" verwendet, um auf die gesamte C ++ - Standardbibliothek zu verweisen. Es verwirrt mich weiterhin, dass so viele Menschen blind schwören, dass niemand dies jemals tut, wenn es fast täglich zu sehen ist.