Я пытаюсь запустить функцию шаблона в отдельном потоке, но 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);