result.get()で処理を待って、値を返してくれる
#include <future> ... auto result = std::async(std::launch::async, [] { return long_hogehoge(); }); // 非同期中の処理なにか std::cout << result.get() << std::endl;
処理中かどうか判定をいれてその間アニメーションさせるとかさせるなら
auto status = result->wait_for(std::chrono::milliseconds(0)); bool isGet = status == std::future_status::ready;
上記のように書くことで isGet 変数にスレッドが終わっていれば true, 終わっていなければ falseが入ります。