Je suis programmeur C qui avait aussi utilisé C++ (avant c++11). Je souhaite utiliser c++11 et future, j'ai essayé le petit test qui ne compile pas, je ne comprend pas pourquoi :
Je compile avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <future> #include <iostream> void called_from_async() { std::cout << "Async call" << std::endl; } int main() { //called_from_async launched in a separate thread if possible std::future<void> result( std::async(called_from_async)); std::cout << "Message from main." << std::endl; //ensure that called_from_async is launched synchronously //if it wasn't already launched result.get(); return 0; }Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 g++ -o future.exe future.cpp g++ --version : g++ (MinGW.org GCC-6.3.0-1) 6.3.0
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 future.cpp: In function 'int main()': future.cpp:167:34: error: variable 'std::future<void> result' has initializer but incomplete type std::future<void> result( std::async(called_from_async)); ^~~~~ future.cpp:167:57: error: invalid use of incomplete type 'class std::future<void>' std::future<void> result( std::async(called_from_async)); ^ In file included from future.cpp:158:0: c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\future:115:11: note: declaration of 'class std::future<void>' class future; ^~~~~~
Partager