命名空间“std”中没有名为“shared_ptr”的类型

Posted

技术标签:

【中文标题】命名空间“std”中没有名为“shared_ptr”的类型【英文标题】:no type named 'shared_ptr' in namespace 'std' 【发布时间】:2012-10-10 12:56:12 【问题描述】:

希望这对其他人有所帮助

尝试使用 Cedar BDD 编译 ios 项目一直失败,在命名空间“std”错误消息中没有名为“shared_ptr”的类型。 这显然是一个 C++ 错误,但无法理解为什么 Xcode 使用的 C++ 库没有定义;直到我发现目标的构建设置提供了两个库可供选择时才定义 shared_ptr 类型

libstdc++(编译器默认) libc++

【问题讨论】:

【参考方案1】:

选择 libc++ 解决问题见截图

【讨论】:

【参考方案2】:

Apple 发布了一个不支持 C++11 的 非常 旧版本的 libstdc++,因此如果您使用 libstdc++,则无法使用 C++11 功能。

【讨论】:

【参考方案3】:

在xcode中你必须使用#include <memory>,你不能使用#include <memory.h>。请检查这个。

【讨论】:

以上是关于命名空间“std”中没有名为“shared_ptr”的类型的主要内容,如果未能解决你的问题,请参考以下文章

命名空间“std”中没有名为“size”的成员

命名空间“std”中没有名为“make_unique”的成员

错误:命名空间“std”中没有名为“remove_cv_t”的模板;你是说'remove_cv'吗?

错误:命名空间“std”中没有名为“enable_if_t”的模板;你是说'enable_if'吗?

命名空间“std”中没有名为“hardware_constructive_interference_size”的成员

为啥 Qt 的 qHash() 没有 std::shared_ptr 的重载?