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?


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:


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.