Я попытался получить следующий пример кода, который работает, чтобы узнать, работает ли асинхронное программирование в Android NDK. Хотя NDK имеет STL <future>
, который распознается как заголовок, std::async
не получает признание, не распознается. Код, который я пытался использовать было следующее:C++ 11 std :: async в Android NDK не работает
#include <future>
#include <iostream>
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";
}
Кроме того, все включаемые пути были установлены в указанной папке под Properties-> Paths и Символы
Errors
Description Resource Path Location Type
invalid use of incomplete type 'std::__async_sfinae_helper<void (Foo::*)(int), void (Foo::*)(int), Foo*, int>::type {aka struct std::future<void>}' Sample.cpp /Project12/jni line 50 C/C++ Problem
Description Resource Path Location Type
declaration of 'std::__async_sfinae_helper<void (Foo::*)(int), void (Foo::*)(int), Foo*, int>::type {aka struct std::future<void>}' Project12 line 111, external location: D:\android-ndk-r8e-windows-x86_64\android-ndk-r8e\sources\cxx-stl\gnu-libstdc++\4.6\include\future C/C++ Problem
еще я не получаю это ... На самом деле я не в состоянии использовать даже перечисление, указанное в .... Это проблема с Eclipse или ndk или библиотекой, которую я не знаю –
user2508941
Это проблема с NDK. Дождитесь обновления. Clang 3.3 и новый stdlib будут там один день. –
@ user2508941 NDK r9 отсутствует, с clang 3.3. – Samveen