Ich habe diesen Code:
%Vor% Und nach dem Kompilieren mit gcc
wird std::system_error
:
Was komisch ist und vor dem Erstellen der Verheißung mit dem Zero-Second-Sleep hinzugefügt wird, verhindert die Ausnahme:
%Vor% Ich probierte gcc
4.8.5 und 5.4.0, gleiche Ergebnisse. Warum verhält es sich so?
Dieser Fehler kommt von Ihrer Kompilierung. Es sollte sein:
%Vor% Die <thread>
-Bibliothek benötigt dieses spezielle Flag -pthread
, aber Sie haben -lpthread
angegeben. Erstere kompilieren Ihre Übersetzungseinheit mit der vollständigen Thread-Unterstützung. Das Spätere verknüpft nur die Bibliothek, ohne die benötigten Makros und benötigten Werkzeuge zu definieren.
Auf coliru: