Secondo cppreference , la maggior parte degli usi della volatileparola 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 volatileparola 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 volatileveniva rimosso non avevano alcun significato comprensibile e creavano solo confusione.
volatileche 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 erratovolatilequando l'intento è l'accesso atomico.