我正在使用Visual Studio 2015,我正在学习多线程。
我试图通过函数中的输入创建一个线程向量。 当我刚创建一个线程向量时,一切都很好但是当我试图访问向量时,无法再编译。
错误:
C2661 'std::tuple<void(__cdecl *)(int,int,std::ofstream&),
int,int,std::basic_ofstream<char,std::char_traits<char> > >::tuple':
no overloaded function takes 4 arguments
代码:
std::vector<std::thread> t(N);
for (int i = 0; i < N; i++)
t[i] = std::thread(writePrimesToFile, begins[i], ends[i], file);
for (int i = 0; i < N; i++)
t[i].join();
线程函数签名:
void writePrimesToFile(int begin, int end, ofstream& file)
顺便说一下,函数本身在没有线程的情况下工作。