この例のように ObjParser::loadData() が呼び出されるたびに、新しいスレッドを開始しようとしています。
だから私はこのコードを書きました。
#include <thread>
void ObjParser::loadData()
{
thread loadingThread(_loadData);
loadingThread.detach();
}
void ObjParser::_loadData()
{
//some code
}
しかし、コンパイルしようとすると、次のエラーが発生します。
error C3867: 'ObjParser::_loadData': function call missing argument list; use '&ObjParser::_loadData' to create a pointer to member
そこで、メンバー関数へのポインターを作成しました。
#include <thread>
void ObjParser::loadData()
{
thread loadingThread(&ObjParser::_loadData);
loadingThread.detach();
}
void ObjParser::_loadData()
{
//some code
}
しかし、コンパイラは文句を言います:
error C2064: term does not evaluate to a function taking 0 arguments
この問題の原因がわかりません。この問題を解決する方法のヒントを教えてください。