C++;Android NDK中的11 std::async不起作用

C++;Android NDK中的11 std::async不起作用,android,c++11,android-ndk,Android,C++11,Android Ndk,我试图让下面的示例代码工作,以了解异步编程是否在AndroidNDK中工作。虽然NDK的STL被识别为头,但是std::async没有被识别,也没有被识别。我尝试使用的代码如下: #include <future> #include <iostream> struct Foo { Foo() : data(0) {} void sum(int i) { data +=i;} int data; }; int main() { Foo foo;

我试图让下面的示例代码工作,以了解异步编程是否在AndroidNDK中工作。虽然NDK的STL
被识别为头,但是
std::async
没有被识别,也没有被识别。我尝试使用的代码如下:

#include <future>
#include <iostream>

struct Foo 
{
  Foo() : data(0) {}
  void sum(int i) { data +=i;}
  int data;
};

int main()
{
    Foo foo;
    auto f = std::async(&Foo::sum, &foo, 42);
    f.get();
    std::cout << foo.data << "\n";
}
#包括
#包括
结构Foo
{
Foo():数据(0){}
无效和(inti){data+=i;}
int数据;
};
int main()
{
富富,;
自动f=std::async(&Foo::sum,&Foo,42);
f、 get();

std::cout目前Android NDK没有包含所有的C++11功能。NDK r9b的Clang 3.3编译器是C++11功能完整的,但是,Android上的
STL
stdlib
没有

要使用Android中最新的
C++11
功能集,请使用
Android NDK r9b
中的Clang 3.3编译器。将此行放入
应用程序.mk
文件:

NDK_TOOLCHAIN_VERSION := clang
另外,将
-std=c++11
开关添加到
本地\u CPPFLAGS
变量:

LOCAL_CPPFLAGS += -std=c++11

但我还是不明白……事实上,我甚至无法使用中定义的枚举……是Eclipse、ndk或库的问题吗?我不知道这是ndk的问题。请等待更新。Clang 3.3和新的stdlib总有一天会出现。@user2508941 ndk r9退出,Clang 3.3退出。@Samveen:r9仍然没有加入Corpora更新所有功能(主要是STL和stdlib)@SergeyK。与其评论Clang3.3中对C++11功能集的支持,不如更新关于r9和Clang3.3可用性的答案。
LOCAL_CPPFLAGS += -std=c++11