我想在單獨的線程上運行模板函數,但IntelliSense(VC++ 2010 Express)不斷給我提供錯誤: 「錯誤:沒有構造函數的實例」boost :: thread ::螺紋 「參數列表匹配」,如果我嘗試編譯我得到這個錯誤: ‘錯誤C2661:‘提高::螺紋::線程’:沒有重載函數有5個參數’boost ::線程和模板函數
只發生錯誤因爲我添加了模板,所以我確定它與它們有關,但我不知道是什麼。
的我傳遞來提高::線程的兩個參數是模板函數定義爲:
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 ::線程像這樣:
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);
完美,謝謝。 – Rarge 2010-11-01 16:26:50