5

次の関数を使用して、std::async が Windows の cygwin と一緒に Eclipse の Android ndk でサポートされているかどうかを確認しようとしました。私が使用した関数は次のとおりです

マシン: cygwin を使用した 64 ビット win 8

アンドロイド: 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 ツールチェーンを使用します。プロパティ-> C/C++->インクルードに4.7用のgnu-libstd++を手動で含める必要がありました。std::async を機能させるための回避策はありますか???

ありがとうございました。

4

1 に答える 1