我尝试使用以下函数来检查 android ndk 与 Eclipse 以及 windows 中的 cygwin 是否支持 std::async 。我使用的功能如下
机器:64bit win 8 with cygwin
安卓:r8e
日食:朱诺 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 第 63 行 C/C++ 问题
注意:我已经设置了 _GLIBCXX_HAS_GTHREADS 和GXX_EXPERIMENTAL_CXX0X以及 ATOMIC_INT_LOCK_FREE ... 默认情况下,ndk 使用 4.6 工具链。我必须在 Properties-> C/C++ -> Includes 中手动包含 4.7 的 gnu-libstd++。有什么办法可以让 std::async 工作吗???
谢谢你。