別のスレッドでテンプレート関数を実行しようとしていますが、IntelliSense (VC++ 2010 Express) でエラーが発生し続けます: 「エラー: コンストラクター "boost::thread::thread" のインスタンスが引数リストと一致しません」コンパイルするには、次のエラーが表示されます:「エラー C2661: 'boost::thread::thread': no overloaded function takes 5 arguments」
テンプレートを追加してからエラーが発生しただけなので、テンプレートと関係があると確信していますが、何が原因かわかりません。
boost::thread に渡す 2 つの引数は、次のように定義されたテンプレート関数です。
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);