Hi What are difference between The GNU C++ Library (libstdc++), "C++ Standard Library", "Standard Template Library" and "SGI STL". When programming in Linux with compiler GCC and programming in Windos in MSVC (MicroSoft Visual C++), which the standard C++ libraries are using by default? Thanks!
Speaking only about the provenance of the STL components of the standard C++ libraries used by default:
- MSVC uses Dinkumware libraries (or apparently a subset thereof, because Dinkumware will sell you addon libraries for MSVC too :-P)
- GCC uses an extended version of SGI STL as part of libstdc++
If you want to swap out the STL, there are other STL implementations like STLport. Pick your poison. :-P
C++ standard library - the generic definition of what functionality / behavior must be provided by the library (strings, pairs, iostream, containers, algorithms, etc. although the specifics vary depending on the version of the C++ standard).
Standard Template Library (STL) - the part of the C++ standard library that has to do with containers and algorithms (and the iterators that bring those two together). The STL was not part of the original C++ library.
libstdc++ - a specific implementation of the C++ standard library.
SGI STL - a specific implementation of the STL part of the C++ standard library. I believe this was also one of the first versions of the STL. Before the STL became part of the C++ library, developers had to download the STL separately (the same way we currently do with Boost).