错误:不推荐使用'template <class> class std :: auto_ptr'

时间:2017-07-12 09:22:58

标签: c++ c++11 g++ scons

我使用scons和ubuntu。 当我在使用&#39; scons&#39;进行某些程序时,会发生错误,如

  

src / db / DBTextLoader.cc:296:3:错误:'模板类std :: auto_ptr'已弃用[-Werror = deprecated-declarations]

     

/ usr / include / c ++ / 5 / bits / unique_ptr.h:49:28:注意:在这里声明      模板类auto_ptr;

这是我的命令;

  

$ ./configuer

     

$ source something.sh

     

$ scons

实际上,我没有任何想法。我已经在搜索这个网站和Google了。但我没有找到解决方案。

这是我的g ++版本(c ++也是同一个版本。)

  

g ++(Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.0 20160609

有什么想法吗? 谢谢。

1 个答案:

答案 0 :(得分:6)

如果您阅读了Scott Meyers的一些书籍,他强烈建议您不要使用auto_ptr。实际上,新的编译器可能会限制它的使用,因为在STL容器中使用auto_ptr时会出现很多可能的问题。

相反,如果您不想要更多该对象的副本,则应使用std::unique_ptr,如果需要复制指针,则应使用std::shared_ptr