我目前正在使用openscenegraph,它使用了自己的智能指针。但是我想使用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 );
然后我得到以下错误信息
知道发生了什么吗?对智能指针有一些要求吗?
最佳答案
你应该做这个:
std::unique_ptr<osg::Uniform> SineUniform(new osg::Uniform( "Sine", 0.0f ));
另外,请注意不要混合使用不同类型的智能指针。 OpenSceneGraph可能会假设如何管理其对象,并且可能需要使用
osg::ref_ptr
来代替。您应该仔细阅读文档才能找到答案-不幸的是,我无法帮助您。