Где взять исходный код стандартной библиотеки C ++? - PullRequest
31 голосов
/ 05 января 2010

возможно ли получить исходный код для стандартной библиотеки c ++?

Ответы [ 9 ]

17 голосов
/ 05 января 2010

Проект GNU является свободным и открытым исходным кодом и содержит реализацию стандартной библиотеки C ++.

http://gcc.gnu.org/libstdc++/

15 голосов
/ 05 января 2010

Если у вас Visual Studio Professional, он имеет исходный код в

X:\Microsoft Visual Studio 9.0\VC\crt\src

13 голосов
/ 05 января 2010

У вас уже должны быть исходные коды в вашей установке компилятора. Если вы используете IDE с командой «перейти к включаемому файлу», выберите любой заголовок STL и перейдите к нему. Если вы используете какой-то UNIX, посмотрите в /usr/include/c++. Посмотрите, где этот заголовок STL включает другие заголовки и recurse: v).

5 голосов
/ 16 марта 2015

libc ++ - это стандартная библиотека C ++ LLVM.

Весь код в libc ++ имеет двойную лицензию по лицензии MIT и лицензии UIUC (BSD-подобная лицензия).

  • Корректность в соответствии со стандартом C ++ 11.
  • Быстрое исполнение.
  • Минимальное использование памяти.
  • Быстрое время компиляции.
  • Совместимость ABI с libstdc ++ gcc для некоторых низкоуровневых функций, таких как объекты исключений, rtti и выделение памяти.
  • Обширные юнит-тесты.
2 голосов
/ 11 апреля 2018

Вот оно:

https://github.com/gcc-mirror/gcc/tree/master/libstdc%2B%2B-v3

В составе исходного кода gcc

https://github.com/gcc-mirror/gcc

это стандартная библиотека для c ++

я думаю, что это единственный ответ с прямой ссылкой в ​​один клик

2 голосов
/ 05 января 2010
1 голос
/ 26 марта 2019

Для Win10x64 с путями установки по умолчанию VS2017, исходный код находится здесь:

part1: VCRuntime, который включает код, который будет изменяться для каждой версии Visual Studio, он содержит функцию, такую ​​как точка входа CRT "mainCRTStartup", код здесь:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\crt\src

part2: стандартная библиотека C, которая включает в себя код, стабильный на протяжении поколений Visual Studio, например функцию fopen, и также содержит стабильные функции CRT, такие как _initterm, код здесь:

C:\Program Files (x86)\Windows Kits\10\Source\10.0.17763.0\ucrt

т.е. эта часть была перемещена в Windows SDK, распространяемый вместе с Windows вместо Visual Studio.

ссылки:

https://devblogs.microsoft.com/cppblog/introducing-the-universal-crt/

1 голос
/ 23 октября 2014

В Visual Studio, если вам интересна конкретная (специфическая) реализация STL-элемента (например, любой функции), щелкните правой кнопкой мыши на его упоминании в вашем коде и выберите «Перейти к определению» в контекстном меню. (Или поместите курсор на это упоминание и нажмите «F12»)

1 голос
/ 05 января 2010

Не забудьте STLPort и SGI единицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...