Verwendung von C ++ 11-Thread mit reiner virtueller Thread-Funktion

8

Ich habe Code, wo Objekte, die in einem separaten Thread ausgeführt werden sollen, von einer Basisklasse mit einer rein virtuellen Funktion Run abgeleitet sind. Ich kann Folgendes nicht erhalten (vereinfachter Testcode), um den neuen Thread auszuführen.

%Vor%

Der Code kompiliert gut (das ist die halbe Miete), aber "Hallo" wird nie gedruckt. Wenn ich etwas falsch mache, würde ich irgendwann einen Laufzeitfehler erwarten. Ich benutze gcc.

Bearbeiten: Der obige Code kann nicht auf VS2012 kompiliert werden mit: error C2064: term does not evaluate to a function taking 0 arguments

Sie müssen ein Lambda anstelle von std::ref verwenden, d. h.

%Vor%     
James 30.01.2013, 17:36
quelle

1 Antwort

3

Sie müssen die Befehlszeile "-pthread" zur g ++ - Befehlszeile hinzufügen, wie in dieser Antwort auf eine ähnliche Frage erläutert: Ссылка .

    
Cyrille Ka 30.01.2013, 18:07
quelle