Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Dynamic pointer cast

Dynamic pointer cast

я создаю объект как boost::shared_ptr

После кручу поток и в котором есть boost::weak_ptr на него.
Если я сброшу shared_ptr, то weak_ptr.expired не пройдей.

А что есля я потом опять инициализирую shared_ptr — можно ли использовать тотже weak_ptr ?

А есть ли что безопасное для smart_ptr типа dynamic_cast
а то можно и так сделать

вообще странно что smapt_ptr позволяет получить читый указатель

P.S. И вроде как dynamic_cast не работает если нет хотябы 1 виртуальной функции ?

boost::dynamic_pointer_cast(и static и const есть).

boost::static_pointer_cast (имитирует static_cast)
boost::const_pointer_cast (имитирует const_cast)

Насчёт reinterpret_cast не помню, может и нету такого.

кстати boost::dynamic_pointer_cast хочет intrusive_ptr

что за smart_ptr ?

понятно — ща погляжу

а для чего intrusive_ptr ?

Добавлено 24.11.07, 22:04
странно

а вот тест из boost

вопрос: зачем у шаблона U ?

для COM объектов чтоли ?

Ну как зачем . В касте участвует ДВА типа. Один из них T(к которому кастится), другой — U(из которого каститься).
В тесте не указывается второй шаблонный параметр, ибо он будет сам выведен компилятором(template argument deduction).

Ты посмотри как-нибудь на досуге описание любого из стандартных алгоритмов — у них и по 4 шаблонных аргумента бывает, а на практике эти аргументы, как правило, не указывают .

Читать еще:  Multipoint server 2020
Ссылка на основную публикацию
Adblock
detector