コンパイラは終了future
直後にfutureのデストラクタを呼び出すべきではありません。つまり、とにかく呼び出されるmain
関数であるべきではありませんか?f()
(gcc 4.7.2はそれを行いません)。
#include <iostream>
#include <thread>
#include <future>
using namespace std;
void f() {
cout << "thread...\n";
}
int main() {
auto future = async(&f);
cout << "I am main\n";
}
編集:私はのみ Hello from main
取得します。テキストthread...
はまったく印刷されません。
編集2:将来のデストラクタは呼び出しますwait()
か?