目前,我正在玩开放摄影,它使用自己的智能指针。但是我想使用std c++11智能指针。
下面是工作示例代码
osg::ref_ptr<osg::Uniform> SineUniform = new osg::Uniform( "Sine", 0.0f );但当我做这样的事
std::unique_ptr<osg::Uniform> SineUniform = new osg::Uniform( "Sine", 0.0f );然后,我得到以下错误消息
错误:从'osg::Uniform*‘转换为非标量类型'std::unique_ptr’请求
知道怎么回事吗?对智能指针有什么要求吗?
发布于 2013-05-03 17:35:30
你应该这么做:
std::unique_ptr<osg::Uniform> SineUniform(new osg::Uniform( "Sine", 0.0f ));另外,要注意不要混合不同类型的智能指针。OpenSceneGraph可能会对其对象的管理方式做出假设,并可能需要使用osg::ref_ptr。你应该翻阅文档才能发现这一点--不幸的是,我对此无能为力。
https://stackoverflow.com/questions/16364637
复制相似问题