Czym różnią się biblioteki GNU C++ (libstdC++), "C++ Standard Library", "Standard Template Library" i "SGI STL". Podczas programowania w Linuksie z kompilatorem GCC i programowaniem w Windos w MSVC (MicroSoft Visual C++), którego standardowe biblioteki C++ są domyślnie używane? Dzięki!wersje biblioteki standardowej C++
Odpowiedz
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).
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
Mylisz "STL" i "Standardową bibliotekę C++". To powszechny błąd, ale mimo to błąd. – sbi
@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 –
- 1. Wewnętrzna praca biblioteki standardowej C
- 2. Instrukcja obsługi standardowej biblioteki C++ 0x
- 3. Wersja do druku biblioteki standardowej Haskell
- 4. Czy nagłówek biblioteki standardowej C++ może zawierać standardowy nagłówek C?
- 5. MacPorts Clang 3.1 brak instalacji standardowej biblioteki?
- 6. Bezpieczeństwo wątków biblioteki standardowej C na OS X
- 7. C++ 11 odtwarzalność losowej dystrybucji krzyżówki/biblioteki standardowej
- 8. Czy istnieje dyrektywa preprocesora do wykrywania biblioteki standardowej C++ 11?
- 9. Gdzie mogę pobrać kod źródłowy do Biblioteki Standardowej GNU C++?
- 10. PHP: Jak wywołać funkcje biblioteki standardowej
- 11. Jak korzystać ze standardowej biblioteki w IronPython?
- 12. Zasięg pythonowego random.random() ze standardowej biblioteki
- 13. Nie mogę skompilować standardowej "Biblioteki usługi WCF" w formacie x86
- 14. Jak korzystać z biblioteki standardowej za pomocą Clanga i LibToolinga
- 15. Zwiększenie instalacji biblioteki C++
- 16. Kontener biblioteki standardowej z dodatkowymi opcjonalnymi parametrami szablonu?
- 17. Dlaczego CPython nie używa `sphinx.autodoc` dla biblioteki standardowej?
- 18. Jak mogę uzyskać kod źródłowy biblioteki standardowej Idris?
- 19. GCC lub zaznacz flagę, aby zabronić określonej funkcji standardowej biblioteki
- 20. Dodawanie atrybutu do słownika Pythona ze standardowej biblioteki
- 21. Pobieranie czasu ściany w języku Python przy użyciu standardowej biblioteki?
- 22. Dlaczego istnieją ciągi __version__ w niektórych modułach standardowej biblioteki Python?
- 23. Jak rozpowszechniać zarówno wersje 32-, jak i 64-bitowe biblioteki
- 24. Jak powiedzieć scons używać standardowej C++ 11
- 25. Jakie są niektóre z najlepszych praktyk korzystania z Biblioteki Standardowej C++?
- 26. Jakie aktywnie używane środowiska C++ nie obsługują (większości, jeśli nie wszystkich) standardowej biblioteki?
- 27. Dlaczego powinienem używać standardowej biblioteki Apache C++ zamiast jakiejkolwiek innej implementacji STL wraz z Boost?
- 28. Skompiluj dwie wersje programu C# automatycznie
- 29. Jak zsynchronizować wersje między projektami Visual C#?
- 30. C++ dwie wersje przeciążenia operatora indeks
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
"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++. –
STL nie należał do ARM, co można uznać za rodzaj dokumentu normatywnego. To był pierwszy oficjalny standard. –