【问题标题】:the program does not recognize smart pointer程序无法识别智能指针
【发布时间】:2013-09-18 09:03:31
【问题描述】:

关于在 c++ 程序中使用 shared_pointers,我已经声明了 #include <memory> 然后调用下面的std::shared_ptr<int>(new int(5)) 它拒绝编译说

错误:“shared_ptr”不是“std”的成员

或者

符号“shared_ptr”无法解析

谁能告诉我为什么会这样?从我读到的,应该在 std 或 boost 库中定义共享点,我都试过了

【问题讨论】:

  • 你使用的是哪个编译器?
  • shared_ptr 是 C++11 的一部分。如果你使用的是旧版本的 C++,你可以使用boost::shared_ptr
  • 你用的是什么编译器?如果是g++,您是否添加了-std=c++11
  • 你试过包括 tr1/memory 吗? - stackoverflow.com/questions/471438/shared-ptr-in-stdtr1

标签: c++ syntax std shared-ptr


【解决方案1】:

std::shared 是 C++11 功能。

你必须有一个支持这个的编译器。

例如,对于 GCC,您应该添加 -std=c++11-std=gnu++11

如果你没有C++11,也可以使用boost::shared_ptr

【讨论】:

  • 我试过这样做 - 无法解决错误“无法解析符号 'shared_ptr'”
  • @NoamFisher 你的编译器是什么? example 使用 gcc v4.8.1。
  • 感谢您的帮助。这是我正在寻找的问题。还不得不更新CDT。 stackoverflow.com/questions/8312854/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-29
相关资源
最近更新 更多