boost::shared_polymorphic_downcast
和其他boost::shared_ptr
函数位于<boost/shared_ptr.hpp>
我最近在GCC中使用-std=c++0x
启用了对C ++ 11的支持。为了避免混淆,我从boost::shared_ptr
移至std::shared_ptr
#include <memory>
。
然而,shared_polymorphic_downcast
似乎不属于std
命名空间,并且未包含在#include <memory>
中。
你知道它在哪里吗?我是否错过了弃用备忘录; - )
答案 0 :(得分:13)
您需要std::static_pointer_cast
或std::dynamic_pointer_cast
,具体取决于您是希望static_cast
还是dynamic_cast
行为。
最新版本的Boost智能指针库也为boost::shared_ptr
提供了这些功能。