使用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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...