Domanda

Cosa fare queste due righe di codice strani media?

thread_guard(thread_guard const&) = delete;

thread_guard& operator=(thread_guard const&) = delete;
È stato utile?

Soluzione

Il =delete è una nuova funzionalità di C ++ 0x. Significa che il compilatore dovrebbe smettere immediatamente di compilazione e si lamentano "questa funzione viene cancellata" una volta che il tale funzione utilizzo utente (Vedi anche: in default e funzioni cancellato -. il controllo di default del C ++ 0x FAQ da Bjarne Stroustrup)

Il thread_guard(thread_guard const&) è un costruttore di copia, e thread_guard& operator=(thread_guard const&) è un costruttore di assegnazione. Queste due linee insieme quindi disabilita la copia delle istanze thread_guard.

Altri suggerimenti

E 'il nuovo C ++ 0x sintassi per la disattivazione delle determinate funzioni della classe. Vedere wikipedia per un esempio. Qui si sta dicendo che la classe thread_guard è né copiabile e non cedibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top