Perché la volatile è deprecata in C ++ 20?


17

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?


13
Ci sono alcuni usi 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 errato volatilequando l'intento è l'accesso atomico.
Peter,


@Peter Quali usi tipici di volatile sono errati?
curiousguy,

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.