前提
あるサイトのテストプログラムを参考に非同期処理を作ったところ戻り値の設定ができません。
実現したいこと
戻り値をstd::futureでラッピングできるようにしたいです。
発生している問題・エラーメッセージ
コンパイルができないです。
下記例の場合、std::future<int> と int で合わないです。
(return 10はコンパイルが通るが、return 20 はダメ)
該当のソースコード
VC++
std::future<int> TestAsync()
{
auto n = std::async(std::launch::async, -> int
{
std::cout << "TestAsync - async tid:" << std::this_thread::get_id() << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
return 10;
});
return 20;
}
試したこと
std::futureの型を色々変えて試しましたが、コンパイルできませんでした。
TASKだと可能なので、同じようなことができるようにしたいです。
(例:Task<int> と int)
補足情報(FW/ツールのバージョンなど)
VisualStudio C++ 2017
回答1件
あなたの回答
tips
プレビュー