Ich habe versucht, folgenden Beispielcode zu erhalten, um zu wissen, ob die asynchrone Programmierung in Android NDK funktioniert. Obwohl NDK die STL <future>
hat, die als Header erkannt wird, wird die std::async
nicht erkannt werden nicht erkannt. Der Code, den ich zu verwenden versucht, war folgendes:C++ 11 Std :: Async in Android NDK funktioniert nicht
#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";
}
auch alle Pfade enthalten sind in den angegebenen Ordner unter Einstellungen-> Pfade und Symbole
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
noch ich es nicht bin immer ... In der Tat bin ich nicht in der Lage zu nutzen, auch die Enum definiert in .... Ist es ein Problem mit Eclipse oder der ndk oder die Bibliothek, die ich nicht kenne –
user2508941
Es ist das Problem mit dem NDK. Warte einfach auf das Update. Clang 3.3 und die neue stdlib werden eines Tages dort sein. –
@ user2508941 NDK r9 ist out, mit clang 3.3. – Samveen