sgi stl 과 stlport 의 차이가 뭔가요?
gcc(3.0 이상) 에 포함되어 있는 stl 은 어떤 stl 인가요?
gcc 에서 별도 제작한건가요? 아니면 sgi 나 stl 꺼를 이용한건가요?
그리고 sgi stl 과 stlport 와의 주된 차이점은 뭔가요?
마지막으로 이 외에 특별한 특징을 가진 유명한 stl 이 있나요?
-------------------------------------------------------------------------------------
첨언을 하자면....
여기 저기서 stlport 이야기를 많이 하길래 해당 사이트에 가서
몇가지를 능력껏 읽어 봤는데요.
기본은 sgi stl 을 기본 베이스로 시작해서 다양한 플랫폼에서 컴팔 할 수 있도록
했다는 내용이 있고 쓰래드에 대한 안정성 같은 몇가지의 이야기가 나오더군요
또한 vs .net 2003 에는 기본으로 stlport 가 설치가 되고
c++ builder 6 에도 기본으로 stlport 가 설치되더군요.
전 기존에 stl 은 sgi stl 이 유명하다는 것 정도만 알고 있었습니다.
그리고 개발할때는 플랫품에 기본 설치되어 있는 stl 을 사용했습니다.
그래서 표준에 벗어나는 건 사용을 하지 않았죠
예를 들면 hash 가 최적인 곳에서 대신에 map 을 이용해서 대처한다든지 하는 방식을 사용했습니다.
그런데 여기 저기 글을 읽어보면 주로 stlport 를 사용하는 것 같던데
왜 그걸 사용하는지에 대한 언급을 찾을 수는 없었습니다.
결국 스스로 해결 못하고 몇가지 궁금한게 있어서 이렇게 질문 드립니다.
...
확장(stdext::*...)을 제외한다면 STLport가 더 표준에 근접한 경우가 많은 것 같던데요? :)
컴파일러와 함께 제공되는 STL 구현이 표준과 맞지 않거나 문제가 있는 경우에 주로 써왔습니다.
----
The future is here. It's just not widely distributed yet.
- William Gibson
stl
sgi STL은 말그대로 sgi란 회사에서 구현해 놓은 STL라이브러리 입니다.
그리고 그 sgi STL을 여러 플랫폼에 맞게 사용할수 있도록 Boris Fomitchev란 사람이 포팅 해놓은 것이 STLport 란 것입니다.
포팅의 존재 이유는 ...
STL 자체는 컴파일러가 코드만 컴파일 해줄수 있다면 그냥 포함시켜 사용할수 있지만 실제로 STL 구현물안에는 시스템 종속적인 입출력이나 로케일쪽의 라이브러리도 포함하고 있기 때문입니다.
그리고 이런 종속적인 부분은 배제하고 순수한(?) STL(컨테이너, 반복자, 알고리즘)만 사용한다고 하더라도 컴파일러가 표준을 100% 지원하지 않는 이상 해당 컴파일러에 맞게 코드를 수정 해줘야 합니다.
이런 이유때문에 STLport란 것이 나오게 되었습니다.
gcc는 sgi STL을 기반으로 gcc 컴파일러에 맞게 포팅해서 사용하는것으로 알고 있고 볼랜드 C++빌더도 버전 6에 와서 전에 쓰던 로그웨이브란 회사의 라이브러리를 버리고 새로 STLport을 사용하고 있습니다.
그러나 MS의 컴파일러는 dinkumware사의 STL 구현물을 사용하고 있습니다.
sgi STL이 많이 사용되고 공신력이 있는 이유는 STL의 창시자인 Alexander Stepanov의 연구가 Silicon Graphics사로 옮겨 진행 되었고 그 연구의 결과가 sgi STL이기 때문이라고 알고 있습니다.
http://www.stlport.org/resources/StepanovUSA.html
sgi STL(STLport 도 sgi STL 에 속한다고 봐도 무방할것이라 생각합니다.)외에 유명한 라이브러리라면 dinkumware의 STL이 있습니다.
STL의 양대 산맥(?)이라고 봐도 ...
dinkumware의 STL이 인정받는 이유는 dinkumware STL의 구현자이자 이 회사의 오너로 알고 있는 P.J. Plauger란 사람 때문에 라고 생각합니다.
P.J. Plauger는 초대 C언어 표준위원회 위원장을 지냈으며 C언어의 표준 라이브러리쪽에 가장 영향력 있는 사람중에 한명입니다.
참고로 VC++6.0 STL까지는 P.J. Plauger의 이름으로 Copyright가 되어 있으며 VC++.net 2002 부터 dinkumware란 이름으로 Copyright가 되어 있습니다.
http://www.sgi.com/tech/stl/
http://www.stlport.org/
http://www.dinkumware.com/
--
cdecl
자세한 답변 감사합니다.많은 도움이 됐습니다.
자세한 답변 감사합니다.
많은 도움이 됐습니다.
Re: stl
감사합니다.
목적을 찾아서... jiNoos
댓글 달기