【发布时间】:2010-10-31 19:58:37
【问题描述】:
我正在尝试在单独的线程上运行模板函数,但 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);
【问题讨论】:
标签: multithreading templates boost boost-thread