Zgodnie z cppreferencją większość zastosowań volatile
słowa kluczowego powinna być przestarzała w C ++ 20. Jaka jest wada volatile
? A jakie jest alternatywne rozwiązanie, gdy nie używasz volatile
?
Zgodnie z cppreferencją większość zastosowań volatile
słowa kluczowego powinna być przestarzała w C ++ 20. Jaka jest wada volatile
? A jakie jest alternatywne rozwiązanie, gdy nie używasz volatile
?
Odpowiedzi:
Krzesło ewolucji języka komitetu c ++ dobrze mówi o tym, dlaczego.
Krótkie podsumowanie, wiele volatile
usuwanych miejsc nie miało żadnego zrozumiałego znaczenia i po prostu spowodowało zamieszanie.
volatile
NIE 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,volatile
gdy celem jest dostęp atomowy.