Dlaczego zmienna jest przestarzała w C ++ 20?

17

Zgodnie z cppreferencją większość zastosowań volatilesłowa kluczowego powinna być przestarzała w C ++ 20. Jaka jest wada volatile? A jakie jest alternatywne rozwiązanie, gdy nie używasz volatile?

康 桓 瑋
źródło
13
Niektóre zastosowania volatileNIE są przestarzałe, ponieważ są przydatne (np. W kodzie, który bezpośrednio ładuje lub przechowuje z określonych lokalizacji pamięci, np. W sterownikach urządzeń). Sporo „przestarzałych zastosowań” wiąże się ze zdolnością do korzystania z funkcji, których zbyt wielu programistów używa - niepoprawnie - jako środka do uzyskania atomowego dostępu o zmiennym dostępie . Teraz biblioteka C ++ (od C ++ 11) zapewnia poprawny sposób zapewnienia dostępu atomowego do zmiennych, więc sensowne jest zniechęcanie programistów do niewłaściwego używania, volatilegdy celem jest dostęp atomowy.
Peter
@Peter Jakie typowe zastosowania substancji lotnych są nieprawidłowe?
ciekawy,

Odpowiedzi: