全て
私はクラスを持っています:
class someClass
{
public:
vector<int> someOperation(int start, int end)
{
// do something...
}
}
そして主な機能:
int main()
{
someClass obj;
std::packaged_task<vector<int>(int, int)> task(&someClass::someOperation);
std::thread t1 = std::thread(std::move(task), &obj, 0, 200); // Error happens here
std::thread t2 = std::thread(std::move(task), &obj, 201, 400);
std::thread t3 = std::thread(std::move(task), &obj, 401, 600);
t1.join();
t2.join();
t3.join();
return 0;
}
このコードは、データの異なる部分に対して同じ操作を実行する 3 つのスレッドを作成できると思います。ただし、スレッド t1 の定義では、コンパイラは次のエラーをポップします。
error C2046: term does not evaluate to a function taking 3 arguments
何が間違っているのか、どうすれば正しく行うことができますか?
よろしくお願いします。
長いです