std :: thread constructor Gibt es einen Unterschied zwischen der Übergabe eines Zeigers und der Übergabe an ref?

9

Gibt es beim Erstellen eines Threads, der eine Memberfunktion aufruft, einen Unterschied zwischen der Übergabe eines Zeigers an die aktuelle Klasse oder dem Übergeben einer Referenz?

Verhält sich method1 im folgenden Beispiel genauso wie method2? Gibt es Unterschiede?

%Vor%     
user3731622 17.12.2015, 22:52
quelle

1 Antwort

4

Nein, es gibt keine Unterschiede, aber beachten Sie, dass die Verwendung eines Referenzwrappers erst mit der Annahme von LWG 2219 als Mängelbericht auf dem WG21-Treffen im Oktober 2015. *

Die Verwendung von std::ref kann in Fällen helfen, in denen Sie eine benannte Objektinstanz haben und nicht this , da this recht einfach zu buchstabieren ist. Aber bedenken Sie die folgende Situation, in der Sie schön const-korrekt bleiben möchten:

%Vor%

Dies könnte einfacher zu lesen sein als:

%Vor%

*) Anbieter, die unterschiedliche Sprachdialekte wie GCCs und Clang mit der -std -Flagge beibehalten, berücksichtigen in der Regel Defekte, die für alle Dialekte gelten und die Implementierungen "reparieren". Fehler sind Dinge, die "immer so gemeint waren, wie wir es jetzt sagen".

    
Kerrek SB 17.12.2015, 23:17
quelle