cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
90 stars 0 forks source link

Перенести boost::intrusive_ptr и boost::thread_specific_ptr в стандартную библиотеку #295

Closed apolukhin closed 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +3, -0 Автор идеи: Виктор Губин

В стандартной библиотеке не хватает интеллектуального указателя с встроенным счетчиком ссылок (make_shared/enable_shared_from_this не совсем то) и Hazard pointer-ра. Однако они есть в Boost, и что если их перенести в стандартную библиотеку вслед за shared_ptr и weak_ptr ?

Boost не всегда есть под рукой, к тому-же в есть ситуации когда вообще нельзя использовать Boost или можно только часть библиотек.

smart_pointer и thread уже включены в стандартную библиотеку, почему-бы ее не расширить проверенными решениями.

apolukhin commented 3 years ago

yndx-antoshkka, 10 апреля 2018, 15:50 Какие именно умные указатели вы хотите увидеть в стандартной библиотеке?

thread_local разве не лучше чем boost::thread_specific_ptr?

ru.night.beast, 10 апреля 2018, 16:10 yndx-antoshkka, (голос из зала) linked_ptr, cow_ptr, intrusive_ptr

Виктор Губин, 10 апреля 2018, 16:27 yndx-antoshkka, thread_local это не совсем то-же что и thread_specific_ptr

thread_local http://en.cppreference.com/w/cpp/language/storage_duration

thread_specific_ptr https://www.boost.org/doc/libs/1_66_0/doc/html/thread/thread_local_storage.html

Второе можно получить используя первое.

Виктор Губин, 10 апреля 2018, 16:21 Простите, не boost::shared_ptr а boost::intrusive_ptr. (отредактировать сайт не дает :( )

yndx-antoshkka, 11 апреля 2018, 16:08 Обновлено 10 апреля 2018, 16:22

intrusive_ptr многие люди хотят.

Попробуйте набросать черновое предложение, следуя вот этой инструкции https://stdcpp.ru/podgotovka-predlozheniya-v-standart-c-instruktsiya

apolukhin commented 3 years ago

А вот над интрузивным указателем стоит поработать

apolukhin commented 3 years ago

На intrusive_ptr есть отдельный тикет #307 Закрываю этот в пользу #307