В чем разница между библиотекой GNU C++ (libstdC++), "C++ Standard Library", "Standard Template Library" и «SGI STL». При программировании в Linux с компилятором GCC и программировании в Windos в MSVC (MicroSoft Visual C++), который по умолчанию используют стандартные библиотеки C++? Спасибо!версии стандартной библиотеки C++
ответ
Стандартная библиотека C++ - общее определение того, какая функциональность/поведение должна предоставляться библиотекой (строки, пары, iostream, контейнеры, алгоритмы и т. Д., Хотя специфика варьируется в зависимости от версии стандарта C++).
Стандартная библиотека шаблонов (STL) - часть стандартной библиотеки C++, которая связана с контейнерами и алгоритмами (и итераторами, которые объединяют эти два). STL не был частью исходной библиотеки C++.
libstdC++ - конкретная реализация стандартной библиотеки C++.
SGI STL - конкретная реализация STL-части стандартной библиотеки C++. Я считаю, что это была также одна из первых версий STL. Прежде чем STL стал частью библиотеки C++, разработчикам пришлось загружать STL отдельно (так же, как в настоящее время мы делаем с Boost).
Говоря только о происхождении компонентов STL стандартной C++ библиотеки, используемые по умолчанию:
- MSVC использует библиотеки Dinkumware (или по-видимому подмножество их, потому что Dinkumware будет продавать вам аддон библиотеки для MSVC также: -P)
- GCC использует расширенную версию SGI STL как часть libstdC++
Если вы хотите поменять на STL, есть и другие варианты реализации STL, как STLport. Выбрать свой яд. :-P
Вы путаете «STL» и «стандартную библиотеку C++». Это распространенная ошибка, но, тем не менее, ошибка. – sbi
@sbi: Нет, я не смущен насчет этих двух, но я пытался придумать способ ответить на вопрос OP. Но спасибо за ваши мысли (и ваш downvote). : -P –
- 1. Как избежать стандартной стандартной библиотеки C/C++ на Linux?
- 2. Barebones C++ без стандартной библиотеки?
- 3. Список исключений стандартной библиотеки C++?
- 4. Внутренняя работа стандартной библиотеки C
- 5. C# эквивалентно C систему `()` стандартной функция библиотеки
- 6. C программа без стандартной библиотеки C. Как?
- 7. Компиляция на Linux с C++ стандартной библиотеки
- 8. Право на пересылку объявляет объекты стандартной библиотеки C, но не объекты стандартной библиотеки C++?
- 9. Получение стандартной версии C++ Visual Studio использует
- 10. документы для стандартной стандартной библиотеки stdlib.ijs
- 11. Импорт стандартной библиотеки Python из C
- 12. Как заменить функцию стандартной библиотеки C?
- 13. стандартной библиотеки C++ хэш-код образца
- 14. Поддержка стандартной библиотеки C на пользовательском языке
- 15. WIndows Системное программирование использование стандартной библиотеки C
- 16. Где получить исходный код стандартной библиотеки C++
- 17. странное поведение стандартной библиотеки строк C++
- 18. Расширение стандартной библиотеки C++ по наследству?
- 19. Изучение стандартной библиотеки C++ - хорошая идея?
- 20. Использование стандартной библиотеки в C++, алгоритм копирования
- 21. Calltree для программы C++ для стандартной библиотеки
- 22. Участок почти/стандартной библиотеки в C++?
- 23. Набор документации Xcode для стандартной библиотеки C++
- 24. Стабилизация стандартной библиотеки qsort?
- 25. Использование стандартной библиотеки HTTP
- 26. Расширение стандартной быстрой библиотеки
- 27. Загрузка стандартной библиотеки Agda
- 28. Ошибка связи стандартной библиотеки VC++
- 29. Наследство стандартной библиотеки C заголовки и перегруженные функции C++
- 30. Языковой движок без стандартной библиотеки
Um, STL _was_ часть исходного стандарта C++ 1998 года. (Фактически, включение STL, начатое в конце процесса стандартизации, значительно задержало первый стандарт C++.) SGI STL является специфическим (Я думаю, что это даже оригинальная) реализация STL. Не все из STL попали в стандарт C++ (например, 'slist'), а некоторые из того, что в последнем, не поступали из STL (например,' std :: string' в качестве контейнера STL). – sbi
«STL не был частью исходного стандарта C++» - это можно рассматривать как правильное - стандарт C++ нигде не относится к чему-то, что называется «STL», или неправильно в том, что контейнеры и алгоритмы, составляющие STL, всегда были частью стандарта C++. – 2010-02-10 21:09:21
STL не был в ARM, который может считаться своего рода стандартным документом. Это было в первом официальном стандарте. –