เหตุใดจึงมีความผันผวนใน C ++ 20


17

ตามcppreference การใช้volatileคำหลักส่วนใหญ่จะเลิกใช้ใน C ++ 20 ข้อเสียvolatileคืออะไร? และสิ่งที่เป็นโซลูชั่นทางเลือกเมื่อไม่ได้ใช้volatile?


13
มีการใช้งานบางอย่างvolatileซึ่งไม่ได้คัดค้านเนื่องจากมีประโยชน์ (เช่นในรหัสที่โหลดหรือจัดเก็บโดยตรงจากตำแหน่งหน่วยความจำที่ระบุเช่นในไดรเวอร์อุปกรณ์) "การใช้งานที่เลิกใช้" ค่อนข้างน้อยมีความเกี่ยวข้องกับความสามารถในการใช้คุณสมบัติที่ progammers ใช้มากเกินไป - ไม่ถูกต้อง - เป็นวิธีในการสร้างตัวแปรการเข้าถึงอะตอมมิก ไลบรารี C ++ ตอนนี้ (ตั้งแต่ C ++ 11) ให้วิธีการที่ถูกต้องในการตรวจสอบการเข้าถึงตัวแปรของอะตอมดังนั้นจึงเหมาะสมที่จะกีดกันโปรแกรมเมอร์จากการใช้ที่ไม่ถูกต้องvolatileเมื่อเจตนาคือการเข้าถึงอะตอมมิก
ปีเตอร์


@Peter การใช้สารระเหยแบบใดที่ไม่ถูกต้อง
curiousguy

คำตอบ:


8

มีการพูดคุยที่ดีโดยเก้าอี้วิวัฒนาการภาษา c ++ ของคณะกรรมการว่าทำไม

สรุปโดยย่อสถานที่หลายแห่งที่volatileถูกลบออกไปนั้นไม่มีความหมายที่เข้าใจได้และก่อให้เกิดความสับสน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.