使用c 11 std :: async在android ndk中使用不完整类型无效

我尝试使用以下函数来检查android ndk中是否支持std :: async以及windows中的cygwin.我使用的功能如下

机器:64位赢得8与cygwin

Android:r8e

Eclipse:Juno 4.2.1

ADT:22.0.1

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";
}

我收到以下错误:

描述资源路径位置类型
无效使用不完整类型’std :: __ async_sfinae_helper :: type {aka struct std :: future}’Sample.cpp / Cli13 / jni line 63 C/C++问题

注意:我已经设置了_GLIBCXX_HAS_GTHREADS以及GXX_EXPERIMENTAL_CXX0X以及ATOMIC_INT_LOCK_FREE …默认情况下,ndk使用4.6工具链.我必须在Properties->中手动包含gnu-libstd for 4.7. C/C++ – >包括.是否有任何工作使std :: async工作???

谢谢.

最佳答案
Android NDK r8e没有C 11的完整运行时库支持.您需要使用某些第三方stdlib编译自己的NDK或等待Google将Clang 3.3包含在NDK中,这是C 11功能完备.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...