首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用std c++11智能指针转换为非标量类型

用std c++11智能指针转换为非标量类型
EN

Stack Overflow用户
提问于 2013-05-03 17:35:02
回答 1查看 3.6K关注 0票数 3

目前,我正在玩开放摄影,它使用自己的智能指针。但是我想使用std c++11智能指针。

下面是工作示例代码

代码语言:javascript
复制
osg::ref_ptr<osg::Uniform> SineUniform   =  new osg::Uniform( "Sine", 0.0f );

但当我做这样的事

代码语言:javascript
复制
std::unique_ptr<osg::Uniform> SineUniform   =  new osg::Uniform( "Sine", 0.0f );

然后,我得到以下错误消息

错误:从'osg::Uniform*‘转换为非标量类型'std::unique_ptr’请求

知道怎么回事吗?对智能指针有什么要求吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 17:35:30

你应该这么做:

代码语言:javascript
复制
std::unique_ptr<osg::Uniform> SineUniform(new osg::Uniform( "Sine", 0.0f ));

另外,要注意不要混合不同类型的智能指针。OpenSceneGraph可能会对其对象的管理方式做出假设,并可能需要使用osg::ref_ptr。你应该翻阅文档才能发现这一点--不幸的是,我对此无能为力。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16364637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档