Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Где можно взять реализацию sharedptr и weakedptr?

#указатели #cpp


Доброго времени суток! Классы sharedptr и weakedptr` еще не были включены в стандарт
С++11, но насколько мне известно, были включены в TR1. Где можно найти код их реализации?
    


Ответы

Ответ 1



Умные указатели включены в стандарт c++11 (std::shared_ptr, std::unique_ptr, std::weak_ptr) Находятся они в хедере (т.е. для подключения необходимо написать следующее: #include ), в стандартном stl-ом пространстве имен std Насколько мне известно мелкомягкие склоняются к политике закрытого кода, т.е. все, что вы видите в microsoft'их хедерах либо обфусцировано, либо вообще неактуально (живой тому пример - это функция strlen, её настоящая реализация сильно отличается о той, которую вы при желании можете найти в их исходных файлах у себя на диске (в директории visual studio, например). Например, для 13 студии можно найти здесь: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\strlen.c", а ведь по факту она считывает по 4 байта за раз и выполняет побитовые операции для нахождения символа конца строки, но, опять же, её настоящая реализация может разниться от одной версии студии к другой) Так как данные умные указатели попали в 11 стандарт непосредственно из boost, то сколько-нибудь актуальную их реализацию можно найти, например, на их сайте. Таким образом, ссылки на boost-овскую реализацию: shared_ptr, weak_ptr.

Комментариев нет:

Отправить комментарий