"STL" 은 C ++이 표준화되기 오래 전부터 Alexander Stepanov가 작성했습니다 . C ++은 80 년대에 존재했지만 이제 " C ++ "라고하는 것은 ISO / IEC 14882 : 2014 (및 ISO / IEC 14882 : 2011과 같은 이전 버전)에서 표준화 된 언어입니다.
STL은 이미 C ++ 용 라이브러리로 널리 사용되어 프로그래머에게 컨테이너, 반복자 및 알고리즘에 대한 액세스 권한을 부여했습니다. 표준화가 일어 났을 때, 언어위원회는 설계 의 부품 수 (언어 표준의 일부 임) C ++ 표준 라이브러리 매우 밀접하게 STL과 일치합니다.
수년 동안 저명한 저술가와 다양한 웹 사이트를 포함하여 많은 사람들이 C ++ 표준 라이브러리를 "STL"이라고 계속 언급했지만 두 개체가 분리되어 있고 약간의 차이점이 있습니다. 이러한 차이점은 다가오는 새로운 C ++ 표준에서 더욱 두드러지며 다양한 기능을 포함하고 일부 클래스를 크게 변경합니다.
원래 STL은 Microsoft Visual Studio 또는 GCC가 C ++ 표준 라이브러리의 구현을 제공하는 것과 같은 방식으로 종종 "C ++ 표준 템플릿 라이브러리의 구현"(실제 기록으로 거꾸로!)이라고합니다. 그러나 "표준 템플릿 라이브러리"와 "표준 라이브러리"는 같은 것이 아닙니다.
현재 표준 라이브러리를 "STL"로 전체 또는 일부로 호출해야하는지, 그리고 그것이 무엇을 호출하는지에 대한 문제가 있습니다.
"STL"의 경우
모든 사람들이 이제 "C ++"가 ISO 표준 언어라는 것을 알고있는 것처럼 "STL"이 표준 라이브러리를 의미한다는 것을 모든 사람들이 알고 있다고 생각하는 학교가 있습니다.
또한 모든 당사자가 대화 내용을 이해하는 한 실제로 중요하지 않다고 믿는 사람들도 포함합니다 .
이 용어는 짐승의 본질에 의해 더욱 널리 사용되는 용어로, 대부분 "템플릿"으로 알려진 C ++ 기능을 많이 사용합니다.
"C ++ 표준 라이브러리"(또는 stdlib)
그러나 내가 구독하는 다른 생각의 학교가 있는데 이것이 혼란 스럽습니다. 처음으로 C ++를 배우는 사람들은 하지 않는 이 차이를 알고, 작은 언어의 차이를 알 수 없습니다.
이 기사의 저자는 전체 C ++ 표준 라이브러리 가 는 STL 자체에 포함되지 않은 기능을 포함 STL . 대조적으로, "STL"의 대부분의 음성 지지자들은 그것이 의미하는 바를 정확히 알고 있으며 모든 사람이 그것을 얻지는 않는다고 믿지 않습니다. 분명히이 용어의 사용법은 일정하지 않습니다.
또한 C ++ 표준 라이브러리가 아닌 원래 STL을 구현 한 일부 STL 유사 라이브러리가 있습니다. 최근까지 STLPort 는 그 중 하나였습니다 (그리고 거기에서도 혼란이 가득합니다!).
또한 C ++ 표준에는 "STL"이라는 텍스트가 포함되어 있지 않으며 일부 사람들은 "STL이 C ++ 표준 라이브러리에 포함되어 있습니다 "와 같은 문구를 습관적으로 사용합니다 .
이런 식으로 용어의 사용을 계속 전파하면 오해가 영원히 계속 될 것입니다. 아아, 그것은 더 나은 것으로 생각 되더라도 물건을 바꾸려고 시도하는 것이 완전히 역효과를 낳을 수 있습니다. 우리는 이중 의미를 영원히 붙잡을 수 있습니다.
결론
이 게시물이 약간 편향되어 있음을 이해합니다. 링크 된 기사를 작성했습니다. :) 어쨌든, 이것이 전투를 조금 더 잘 설명하는 데 도움이되기를 바랍니다.
2011 년 4 월 13 일 업데이트
다음은 세 가지 완벽한 예제 전체 C ++ 표준 라이브러리를 참조하는 "는 STL"을 사용하는 사람의이. 거의 매일 매일 보는 것이 평범 할 때 많은 사람들이 맹인을 맹세하지 않는다고 계속해서 당황하게합니다.