Von dem, was ich nachgeschlagen habe, ist meine Syntax korrekt, aber mein Compiler (VS2015) beschweren sich. Hinweis: Ich verwende Namespace ee mit der Klasse Netzwerk. Hier ist der CodeC++ 11 - Übergabe Member-Funktion zu Thread gibt: keine überladene Funktion benötigt 2 Argumente
//code that doens't work
thread clientThread(&ee::Network::clientRun, new ee::Network);
* Anmerkung: in dem realen Code, den ich nicht neu als Argument nennen, ich habe es hier Code zu verkürzen.
Ich habe die Funktionen getestet und sie funktionieren, ich kann sie nur nicht mit Thread arbeiten. Hier sind ihre Unterschriften.
void serverRun();
void clientRun();
void clientRun(string ip);
Meine Fehler sind:
Fehler C2661 'std :: thread :: thread': keine überladene Funktion nimmt zwei Argumente
abc keine Instanz von Konstruktor „std :: Gewinde :: thread“entspricht der Argumentliste
jemand einen Einblick, Hat was happeni sein könnte ng in dieser Situation?
Vielleicht nicht so dumme Frage, enthalten Sie '', nicht wahr? Wir haben hier nicht viel zu tun. –
WhozCraig
Das sieht wie ein Visual C++ - Fehlercode aus - welche Version verwenden Sie? –
Außerdem haben Sie ein Mehrdeutigkeitsproblem. Versuchen Sie 'void (ee :: Netzwerk :: * threadProc)() = & ee :: Netzwerk :: clientRun; thread clientThread (threadProc, new ee :: Netzwerk); ' –