J'essaye d'exécuter une fonction template sur un thread séparé mais IntelliSense (VC++ 2010 Express) continue à me donner l'erreur: "Erreur: aucune instance de constructeur" boost :: thread :: fil « correspond à la liste des arguments » et si je tente de compiler je reçois cette erreur: « erreur C2661: « boost :: :: fil fil »: fonction ne prend en surcharge 5 arguments »boost :: fonctions thread et template
l'erreur n'a eu lieu Depuis que j'ai ajouté les modèles, je suis certain que cela a quelque chose à voir avec eux, mais je ne sais pas quoi.
Deux des arguments je passe à boost :: thread ne sont définis comme modèle:
template<class F>
void perform_test(int* current, int num_tests, F func, std::vector<std::pair<int, int>>* results);
et:
namespace Sort
{
template<class RandomAccessIterator>
void quick(RandomAccessIterator begin, RandomAccessIterator end);
} //namespace Sort
Je tente d'appeler boost :: fil comme ceci:
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);
Parfait, merci. – Rarge