本文介绍了与升压的static_cast :: shared_ptr的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是相当于一个的static_cast 的boost :: shared_ptr的

在换句话说,怎么做我不得不重写以下

 基础* B =新派生的();
派生* D =的static_cast<衍生*>(二);

当使用

的shared_ptr

 的boost :: shared_ptr的<基地以及GT; B(新派生的());
提高:: shared_ptr的<衍生GT; D =?


解决方案

使用的boost :: static_pointer_cast

 的boost :: shared_ptr的<基地以及GT; B(新派生的());
提高:: shared_ptr的<衍生GT; D =的boost :: static_pointer_cast<衍生GT;(二);

What is the equivalent of a static_cast with boost::shared_ptr?

In other words, how do I have to rewrite the following

Base* b = new Derived();
Derived* d = static_cast<Derived*>(b);

when using shared_ptr?

boost::shared_ptr<Base> b(new Derived());
boost::shared_ptr<Derived> d = ???
解决方案

Use boost::static_pointer_cast:

boost::shared_ptr<Base> b(new Derived());
boost::shared_ptr<Derived> d = boost::static_pointer_cast<Derived>(b);

这篇关于与升压的static_cast :: shared_ptr的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-01 12:39