Secondo cppreference , la maggior parte degli usi della volatile
parola chiave devono essere deprecati in C ++ 20. Qual è lo svantaggio di volatile
? E qual è la soluzione alternativa quando non si usa volatile
?
Secondo cppreference , la maggior parte degli usi della volatile
parola chiave devono essere deprecati in C ++ 20. Qual è lo svantaggio di volatile
? E qual è la soluzione alternativa quando non si usa volatile
?
Risposte:
Il presidente del comitato c ++ ha parlato bene del perché.
Breve riassunto, molti dei luoghi da cui volatile
veniva rimosso non avevano alcun significato comprensibile e creavano solo confusione.
volatile
che NON sono deprecati, perché sono utili (ad esempio nel codice che carica o memorizza direttamente da posizioni di memoria specificate, come nei driver di dispositivo). Molti degli "usi deprecati" sono legati alla capacità di usare funzionalità che troppi programmatori usano - erroneamente - come mezzo per rendere atomico un accesso variabile . La libreria C ++ ora (dal C ++ 11) fornisce un mezzo corretto per garantire l'accesso atomico alle variabili, quindi ha senso scoraggiare i programmatori dall'utilizzare in modo erratovolatile
quando l'intento è l'accesso atomico.