获取错误:名称空间“std”中的“shared_ptr”未命名types

我想在android studio(ndk r10d)中使用一些C ++代码编译一个android应用程序。 我需要C ++ 11,所以我添加了-std=gnu++11 (我需要gnu++11而不是c++11 )。 我正在使用stlport stl,由于我正在使用其他库,使用这个stl库。 所以我在build.gradle文件中的cFlags和stl参数如下所示:

 stl "stlport_static" cFlags " mylib1.a mylib2.a ... -fexceptions -frtti -std=gnu++11" 

我也有内存: #include <memory>

当试图编译我收到此错误:

 'shared_ptr' in namespace 'std' does not name a type 

直到现在,我一直在使用智能指针的boost实现,但随着迁移到c + + 11我宁愿使用标准的实现。

Solutions Collecting From Web of "获取错误:名称空间“std”中的“shared_ptr”未命名types"

@TC看起来你是对的。 我在另外一个问题上看到了你的声明,同时为我的问题寻找一个解决scheme,但是因为我正在使用的库正在用C ++ 11和STLport进行编译,所以我认为这个声明可能不是真的。

我认为发生的事情是我正在使用的库没有使用STLport丢失的任何C ++ 11function。 他们只使用gcc编译器支持的C ++ 11function。 我需要gnuStl来支持我正在使用的function。

我的解决scheme是使用boost实现的智能指针和所有其他缺less的C ++ 11function。