Где стандартный эквивалент boost :: shared_polymorphic_downcast в C ++ 11? - PullRequest
8 голосов
/ 12 июня 2011

boost::shared_polymorphic_downcast и другие boost::shared_ptr функции находятся в <boost/shared_ptr.hpp>

Я недавно включил поддержку C ++ 11 в GCC с -std=c++0x.Чтобы избежать путаницы, я перешел с boost::shared_ptr на std::shared_ptr, который находится в #include <memory>.

Однако похоже, что shared_polymorphic_downcast не является частью пространства имен std и не включен#include <memory>.

Вы знаете, где это?Я пропустил записку об устаревании; -)

1 Ответ

13 голосов
/ 12 июня 2011

Вам потребуется std::static_pointer_cast или std::dynamic_pointer_cast, в зависимости от того, хотите ли вы поведение static_cast или dynamic_cast.

Последние версии библиотеки Boost Smart Pointers включают эти функции и для boost::shared_ptr.

...