J’ai un type de fonction surchargé non résolu d’erreur en c ++

Pourquoi un morceau de code comme ceci:

boost::bind (SomeFunc, function arguments go here); 

produire cette erreur:

 no matching function for call to bind( 

Merci

Il se peut que votre fonction SomeFunc soit surchargée, auquel cas boost::bind ne peut pas gérer cela. Vous devez implémenter une solution manuelle, voir ici pour plus de détails:

Vous devez utiliser un static_cast pour indiquer au compilateur quelle surcharge choisir si elle est ambiguë, par exemple:

 #include  void foo(int) {} void foo(double) {} int main() { boost::bind(static_cast(&foo), _1); } 

Parfois, “type de fonction surchargée non résolue” peut signifier “aucune des surcharges n’est viable”, auquel cas vous devez comprendre pourquoi il ne peut en utiliser aucune et résoudre ce problème.