Реализация STL
От: HolyNick  
Дата: 04.07.14 11:59
Оценка: -1 :)
Добрый день.
Никто не подскажет где можно отыскать исходные коды на реализацию STL под WINDOWS (например реализация <thread>, те реализация функции на которые идет ссылка в этих файлах).
Любой компилятор, допустим GCC.
Re: Реализация STL
От: Abyx Россия  
Дата: 04.07.14 12:20
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Добрый день.

HN>Никто не подскажет где можно отыскать исходные коды на реализацию STL под WINDOWS (например реализация <thread>, те реализация функции на которые идет ссылка в этих файлах).
HN>Любой компилятор, допустим GCC.

скачать гцц, там и будет реализация %)

олсо, то что ты назвал STL на самом деле называется "стандартная библиотека".
In Zen We Trust
Re[2]: Реализация STL
От: HolyNick  
Дата: 04.07.14 12:22
Оценка:
Я там в упор не нахожу реализацию под Windows.
Re[3]: Реализация STL
От: Abyx Россия  
Дата: 04.07.14 12:29
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Я там в упор не нахожу реализацию под Windows.


ну посмотри в отладчике, если так не найти %)
In Zen We Trust
Re[4]: Реализация STL
От: HolyNick  
Дата: 04.07.14 13:22
Оценка:
Отладчик по хидерам скачет.
Я в source code не вижу ни единой ссылки на WIN API.
Re[5]: Реализация STL
От: Mr.Delphist  
Дата: 04.07.14 13:41
Оценка: -1
Здравствуйте, HolyNick, Вы писали:

HN>Отладчик по хидерам скачет.

HN>Я в source code не вижу ни единой ссылки на WIN API.

Win API и STL — вещи сугубо ортогональные, платформенная специфика код STL не интересует — он пользуется платформенно-зависимой реализацией рантайма конкретного компилятора.

Что именно Вы хотите?
Re[6]: Реализация STL
От: HolyNick  
Дата: 04.07.14 14:01
Оценка:
Я хочу увидеть, например, реализацию std::thread. Допустим как запускается поток.
Понятно, что под Windows это будет вызов _beginthread(ex)(...) плюс некоторый сопутствующий код. Хотелось бы увидеть этот вызов вместе с сопутствующим кодом.
Есть и другие объекты: std::condition_variable итд...хочется посмотреть как они реализованы с помощью native Windows API.
Re[7]: Реализация STL
От: ArtDenis Россия  
Дата: 04.07.14 14:15
Оценка: +2
Здравствуйте, HolyNick, Вы писали:

HN>Я хочу увидеть, например, реализацию std::thread. Допустим как запускается поток.


Ну так зайди в отладчике в конструктор std::thread и всё увидишь.
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[7]: Реализация STL
От: watchmaker  
Дата: 04.07.14 14:29
Оценка: +1
Здравствуйте, HolyNick, Вы писали:

HN>Я хочу увидеть, например, реализацию std::thread. Допустим как запускается поток.

HN>Понятно, что под Windows это будет вызов _beginthread(ex)(...) плюс некоторый сопутствующий код. Хотелось бы увидеть этот вызов вместе с сопутствующим кодом.
HN>Есть и другие объекты: std::condition_variable итд...хочется посмотреть как они реализованы с помощью native Windows API.

Но в STL этих вещей может и не быть. И если ты смотришь и не находишь вызовов WinApi в реализации STL, которая идёт под Windows с gcc/mingw, то это может свидетельствовать не о проблеме поиска, а что их там действительно нет.
Например, тот же механизм std::thread может быть реализован через интерфейс pthreads. Понятно, что в конечном итоге это сведётся к каким-то вызовам из WinApi, но эти вызовы будет делать уже библиотека, реализующая интерфейс pthreads, которая не будет иметь никакого отношения к STL.
То есть в этом случае тебе нужно либо смотреть исходный код libpthread, если реализация STL импользует её, либо выбрать другую реализацию STL для изучения — там же есть много версий, среди которых есть и использующие WinAPI (почти) напрямую.
Re: Реализация STL
От: uzhas Ниоткуда  
Дата: 04.07.14 15:35
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Никто не подскажет где можно отыскать исходные коды на реализацию STL под WINDOWS (например реализация <thread>, те реализация функции на которые идет ссылка в этих файлах).


скачай буст или поставь visual studio
там есть реализация thread
Re[2]: Реализация STL
От: HolyNick  
Дата: 04.07.14 18:56
Оценка:
Да, в 12 студии похоже можно до native WIN API вызовов добраться...
Re[7]: Реализация STL
От: Ops Россия  
Дата: 05.07.14 06:20
Оценка: +1
Здравствуйте, HolyNick, Вы писали:

HN>Я хочу увидеть, например, реализацию std::thread. Допустим как запускается поток.

HN>Понятно, что под Windows это будет вызов _beginthread(ex)(...) плюс некоторый сопутствующий код. Хотелось бы увидеть этот вызов вместе с сопутствующим кодом.
HN>Есть и другие объекты: std::condition_variable итд...хочется посмотреть как они реализованы с помощью native Windows API.
С каких пор _beginthread(ex) это native Windows API?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Реализация STL
От: Pavel Dvorkin Россия  
Дата: 05.07.14 17:12
Оценка: +1
Здравствуйте, HolyNick, Вы писали:

HN>Никто не подскажет где можно отыскать исходные коды на реализацию STL под WINDOWS (например реализация <thread>, те реализация функции на которые идет ссылка в этих файлах).

HN>Любой компилятор, допустим GCC.

В Visual Studio исходники STL идут вместо со студией еще с прошлого тысячелетия.

"D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\"
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.