我正在尝试在单独的线程上运行模板函数,但 IntelliSense (VC++ 2010 Express) 不断给我错误:“错误:没有构造函数实例“boost::thread::thread”与参数列表匹配”如果我尝试编译我得到这个错误:“错误 C2661:'boost::thread::thread':没有重载函数需要 5 个参数”
该错误仅在我添加模板后才发生,因此我确定它与它们有关,但我不知道是什么。
我传递给 boost::thread 的两个参数是定义为的模板函数:
template<class F>
void perform_test(int* current, int num_tests, F func, std::vector<std::pair<int, int>>* results);
和:
namespace Sort
{
template<class RandomAccessIterator>
void quick(RandomAccessIterator begin, RandomAccessIterator end);
} //namespace Sort
我尝试像这样调用 boost::thread :
std::vector<std::pair<int, int>> quick_results;
int current = 0, num_tests = 30;
boost::thread test_thread(perform_test, ¤t, num_tests, Sort::quick, &quick_results);