"STL" は、C ++が標準化されるずっと前に、Alexander Stepanovによって書かれました。C ++は80年代まで存在していましたが、現在「C ++」と呼ばれているのは、ISO / IEC 14882:2014(および以前のバージョン(ISO / IEC 14882:2011など))で標準化された言語です。
STLはすでにC ++のライブラリとして広く使用されており、プログラマーがコンテナー、イテレーター、アルゴリズムにアクセスできるようにしています。標準化が起こった場合には、言語委員会は、設計されたの部分する(言語標準の一部である)C ++標準ライブラリを非常に密接にSTLと一致します。
長年にわたり、著名な本の作者やさまざまなWebサイトを含む多くの人々が、C ++標準ライブラリを「STL」と呼んでいますが、2つのエンティティは別個であり、いくつかの違いがあります。これらの違いは、さまざまな機能を含み、一部のクラスを大幅に変更する次の新しいC ++標準でさらに顕著になります。
元のSTLは、Microsoft Visual StudioまたはGCCがC ++標準ライブラリの実装を出荷するのと同じ方法で、「C ++標準テンプレートライブラリの実装」と呼ばれることがよくあります(実際の履歴にさかのぼります)。ただし、「標準テンプレートライブラリ」と「標準ライブラリ」は同じものではありません。
戦いは、現在の標準ライブラリの全体または一部を「STL」と呼ぶかどうか、および/またはそれが何と呼ばれるかが重要かどうかについてです。
「STL」の場合
「STL」が標準ライブラリを意味することを誰もが知っていると言う考え方の学派があります。「C ++」がISO標準化言語であることを誰もが知っているのと同じです。
また、すべての関係者が話していることを理解している限り、それはそれほど重要ではないと考える人々も含まれます。
これは、獣の性質によってさらに普及した用語であり、その多くは「テンプレート」として知られるC ++機能を多用します。
「C ++標準ライブラリ」(またはstdlib)の場合
しかし、私が同意する別の考え方があります。これは混乱を招くということです。C ++を初めて学習する人はこの違いを知らないため、言語の小さな違いに気付かない場合があります。
その記事の著者は、全体のC ++標準ライブラリと信じている人に遭遇多数回持っている STL自体の一部ことはありませんでした機能を含め、STLを。対照的に、「STL」のほとんどの声の支持者は、彼らがそれによって何を意味するかを正確に知っており、誰もが「それを理解する」わけではないと信じることを拒否します。明らかに、用語の用法は均一ではありません。
さらに、実際には元のSTLの実装であり、C ++標準ライブラリではない、いくつかのSTLに似たライブラリがあります。最近まで、STLPortはその1つでした(そして、そこにも混乱がたくさんあります!)。
さらに、C ++標準には「STL」というテキストはどこにも含まれておらず、「STL はC ++標準ライブラリに含まれている」などのフレーズを日常的に使用している人もいますが、これは間違いです。
このように言葉の用法を広め続けることは、誤解が永遠に続くことになると私は信じています。悲しいかな、より良いものになるはずだとしても、物事を変えようとすることは完全に逆効果になるかもしれません。永遠に二重の意味で立ち往生しているだけかもしれません。
結論
この投稿が少し偏っていることに感謝します。あなたがリンクした記事を書きました。:)とにかく、私はこれが戦いを少しよく説明するのに役立つことを願っています。
2011年4月13日更新
以下は、「STL」を使用してC ++標準ライブラリ全体を参照している人の3つの 完璧な 例です。ほとんど毎日のように見ているのが明白なとき、多くの人々が盲目を誓うので、誰もこれをしていません。