"STL" Alexander Stepanov tarafından C ++ standardize edilmeden çok önce yazılmıştır . C ++, 80'ler boyunca mevcuttu, ancak şimdi " C ++ " olarak adlandırdığımız şey, ISO / IEC 14882: 2014'te (ve ISO / IEC 14882: 2011 gibi önceki sürümlerde) standartlaştırılan dildir.
STL zaten C ++ için bir kütüphane olarak yaygın olarak kullanıldı ve programcılara kapsayıcılara, yineleyicilere ve algoritmalara erişim sağladı. Standardizasyon gerçekleştiğinde bu dil komitesi tasarlanmış parçaları için (dil standardının parçasıdır) C ++ Standart Kütüphanesi çok yakından STL maç.
Yıllar boyunca, önde gelen kitap yazarları ve çeşitli web siteleri de dahil olmak üzere birçok insan, iki varlığın ayrı olmasına ve bazı farklılıklar olmasına rağmen, C ++ Standart Kütüphanesine "STL" adını vermeye devam etmiştir. Bu farklılıklar, çeşitli özellikler içeren ve bazı sınıfları önemli ölçüde değiştiren yeni C ++ standardında daha da belirgindir.
Özgün STL'ye artık Microsoft Visual Studio veya GCC'niz C ++ Standart Kitaplığı'nın bir uygulamasıyla aynı şekilde "C ++ Standart Şablon Kitaplığı'nın bir uygulaması" (gerçek tarihe geri döndü!) Denir. Ancak "Standart Şablon Kütüphanesi" ve "Standart Kütüphane" aynı şey değildir.
Savaş, mevcut Standart Kütüphanenin tamamen veya kısmen "STL" olarak adlandırılıp adlandırılmayacağı ve / veya bunun ne denli önemli olduğuyla ilgilidir.
"STL" için
Herkesin "STL" nin standart kütüphane anlamına geldiğini bildiğini söyleyen bir düşünce okulu var, tıpkı herkesin "C ++" nın ISO standardize edilmiş dil olduğunu bildiği gibi.
Ayrıca , tüm taraflar neyin konuşulduğunu anladığı sürece bunun gerçekten önemli olmadığına inananları da içerir .
Birçoğu "şablonlar" olarak bilinen C ++ özelliğini yoğun olarak kullanan canavarın doğasıyla daha da yaygınlaşan bir terimdir.
"C ++ Standart Kütüphane" (veya stdlib) için
Ancak, abone olduğum başka bir düşünce okulu var, bunun kafa karıştırıcı olduğunu söylüyor. C ++ 'ı ilk kez öğrenen insanlar yok bu ayrımı biliyorum ve küçük dil farklılıkları fark olmayabilir.
Bu makalenin yazarı, tüm C ++ Standart kütüphane inanıyoruz insanlar karşılaştı defalarca vardır olduğunu hiçbir zaman STL'nin kendisinin bir parçası olmayan özellikler de dahil olmak üzere STL . "STL" nin vokal savunucularının çoğu, bunun aksine, ne demek istediklerini tam olarak bilir ve herkesin "yakalayamadığına" inanmayı reddeder. Açıkçası, terimin kullanımı tekdüze değildir.
Ayrıca, C ++ Standart Kütüphanesi değil, aslında orijinal STL'nin uygulamaları olan bazı STL benzeri kütüphaneler vardır. Yakın zamana kadar STLPort bunlardan biriydi (ve hatta orada, karışıklık bol!).
Ayrıca, C ++ Standardı hiçbir yerde "STL" metnini içermez ve bazı kişiler alışkanlık olarak "STL dahildir C ++ Standart Kütüphanesine edilir bu yanlıştır.
İnanıyorum ki, terimin kullanımını bu şekilde yaymaya devam etmek, yanlış anlamaların sonsuza dek sürmesine yol açacaktır. Ne yazık ki, daha iyisi için olması gerekse bile, bir şeyleri değiştirmeye çalışmak tamamen karşı üretken olabilir. Sonsuza dek çift anlamlarla sıkışıp kalabiliriz.
Sonuç
Bu yazının biraz önyargılı olduğunu takdir ediyorum: Bağlantı verdiğiniz makaleyi yazdım. Her neyse, umarım bu savaşı biraz daha iyi açıklamaya yardımcı olur.
Güncelleme 13/04/2011
İşte tüm C ++ Standart Kitaplığı'na başvurmak için "STL" kullanan birinin mükemmel üç örneği . Bu kadar çok insanın neredeyse günlük olarak görmek basit olduğunda kimsenin bunu yapmadığı için küfür ettiğine şaşırmaya devam ediyor.