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

前端之家收集整理的这篇文章主要介绍了使用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功能完备.
原文链接:https://www.f2er.com/android/430902.html

猜你在找的Android相关文章