我将不胜感激这里的任何帮助。我正在尝试使用 Boost::Thread 异步调用函数,但出现了一些错误。这是我的真实代码。
主要:
vector<std::string> a = ...;
vector<std::string> b = ...;
vector<boost::thread> threads;
threads.push_back(boost::thread(do_work, an_integer, a[i], b.begin(), b.end()));
// Later I will join()...
别处:
void do_work(int i, std::string a_string, vector<string>::iterator begin, vector<string>::iterator end)
{
// Some stuff
}
我对这些东西很陌生,更习惯于 C#。无论如何,这些是我得到的错误:
error C2664: 'void (int,std::string,std::_Vector_iterator<_Myvec>,std::_Vector_iterator<_Myvec>)' : cannot convert parameter 1 from 'std::_Vector_iterator<_Myvec>' to 'int'
error C2664: 'void (int,std::string,std::_Vector_iterator<_Myvec>,std::_Vector_iterator<_Myvec>)' : cannot convert parameter 3 from 'std::basic_string<_Elem,_Traits,_Ax>' to 'std::_Vector_iterator<_Myvec>'
error C2664: 'void (int,std::string,std::_Vector_iterator<_Myvec>,std::_Vector_iterator<_Myvec>)' : cannot convert parameter 4 from 'std::_Vector_iterator<_Myvec>' to 'std::_Vector_iterator<_Myvec>'
我将不胜感激您能提供的任何帮助。我几乎可以肯定在做一些非常愚蠢的事情!非常感谢。