Mengapa volatile tidak digunakan lagi dalam C ++ 20?

17

Menurut cppreference , sebagian besar penggunaan volatilekata kunci akan ditinggalkan dalam C ++ 20. Apa kerugiannya volatile? Dan apa solusi alternatif saat tidak menggunakan volatile?

康 桓 瑋
sumber
13
Ada beberapa penggunaan volatileyang TIDAK usang, karena berguna (misalnya dalam kode yang secara langsung memuat atau menyimpan dari lokasi memori yang ditentukan, seperti di driver perangkat). Cukup banyak "penggunaan yang tidak digunakan lagi" terkait dengan kemampuan untuk menggunakan fitur yang terlalu banyak digunakan oleh progammers - secara tidak benar - sebagai cara untuk membuat atom akses variabel . Pustaka C ++ sekarang (karena C ++ 11) menyediakan cara yang benar untuk memastikan akses variabel variabel, sehingga masuk akal untuk mencegah programmer dari menggunakan salah volatileketika tujuannya adalah akses atom.
Peter
@ Peter Yang umum menggunakan volatile tidak benar?
curiousguy

Jawaban:

8

Ada pembicaraan yang baik oleh ketua evolusi bahasa komite c ++ tentang alasannya.

Ringkasan singkat, banyak tempat yang volatilesedang dihapus dari tidak memiliki makna yang dapat dimengerti dan hanya menyebabkan kebingungan.

unDeadHerbs
sumber