Frage

Was tun diese beiden seltsamen Zeilen Code bedeuten?

thread_guard(thread_guard const&) = delete;

thread_guard& operator=(thread_guard const&) = delete;
War es hilfreich?

Lösung

Die =delete ist ein neues Feature von C ++ 0x. Es bedeutet, dass der Compiler sollte sofort stoppen Kompilieren und beschweren sich „diese Funktion wird gelöscht“, sobald der Benutzer einen solchen Funktion (Siehe auch: vorbelegt und gelöschte Funktionen -. Kontrolle der Standardwerte der C ++ 0x FAQ von Bjarne Stroustrup)

Die thread_guard(thread_guard const&) ist ein Kopierkonstruktor und thread_guard& operator=(thread_guard const&) ist eine Zuordnung Konstruktor. Diese beiden Linien zusammen deshalb deaktiviert Kopieren der thread_guard Instanzen.

Andere Tipps

Es ist die neue C ++ 0x-Syntax für die bestimmten Funktionen der Klasse zu deaktivieren. Siehe wikipedia für ein Beispiel. Hier können Sie sagen, dass die Klasse thread_guard weder kopierbar ist noch übertragbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top