2010-02-10 20 views

Odpowiedz

6

Standardowa biblioteka C++ - ogólna definicja tego, co musi zapewnić funkcjonalność/zachowanie biblioteki (łańcuchy, pary, iostream, kontenery, algorytmy itp., Chociaż specyfikacje różnią się w zależności od wersji standardu C++).

Standardowa biblioteka szablonów (STL) - część standardowej biblioteki C++, która ma do czynienia z kontenerami i algorytmami (oraz z iteratorami, które łączą te dwa elementy). STL nie był częścią oryginalnej biblioteki C++.

libstdC++ - specyficzna implementacja biblioteki standardowej C++.

SGI STL - specyficzna implementacja części STL biblioteki standardowej C++. Uważam, że była to również jedna z pierwszych wersji STL. Zanim STL stał się częścią biblioteki C++, programiści musieli pobrać STL oddzielnie (tak jak obecnie robimy z Boost).

+2

Um, STL _ był częścią oryginalnego standardu C++ z roku 1998. (W rzeczywistości, włączenie STL, rozpoczęte późno podczas procesu normalizacji, znacznie opóźniło pierwszy standard C++.) SGI STL jest specyficznym (Myślę, że to nawet oryginalna) implementacja STL. Nie wszystkie STL wprowadziły go do standardu C++ (np. 'Slist'), a niektóre z tego, co jest w tym drugim, nie pochodziły ze STL (na przykład' std :: string' jako kontener STL). – sbi

+0

"STL nie był częścią oryginalnego standardu C++" - można to uznać za poprawne - Standard C++ nigdzie nie odnosi się do czegoś o nazwie "STL" lub źle, ponieważ kontenery i algorytmy tworzące STL zawsze były częścią standardu C++. –

+1

STL nie należał do ARM, co można uznać za rodzaj dokumentu normatywnego. To był pierwszy oficjalny standard. –

4

Mówiąc tylko o pochodzeniu składników STL standardowej C++ bibliotek używanych domyślnie:

  • MSVC używa ich bibliotek Dinkumware (lub pozornie podzbiór, ponieważ Dinkumware będzie sprzedawać bibliotek dodatek do MSVC też: -P)
  • GCC wykorzystuje rozszerzoną wersję SGI STL jako część libstdC++

Jeśli chcesz zamienić się STL, istnieją inne implementacje STL jak STLport. Wybierz swoją truciznę. :-P

+0

Mylisz "STL" i "Standardową bibliotekę C++". To powszechny błąd, ale mimo to błąd. – sbi

+0

@sbi: Nie, sam nie jestem zdezorientowany, ale próbowałem wymyślić sposób na odpowiedź na pytanie OP. Ale dziękuję za twoje myśli (i twoje sprzeniewierzenie). :-P –

Powiązane problemy