ฉันเพิ่งสงสัยว่าทำไมคำหลักที่auto
ถูกเลือกใน C ++ 11 เพื่อทำเครื่องหมายตัวแปรที่ต้องสรุปประเภทของคอมไพเลอร์เช่น
auto x = 1;
ตั้งแต่
var
ดูเหมือนจะพบได้ทั่วไปในภาษาการเขียนโปรแกรมอื่น ๆ (เช่น C #, Scala, JavaScript) และ- เท่าที่ฉันเข้าใจความหมายใหม่ของการ
auto
แบ่งความเข้ากันได้แบบย้อนหลัง (ไม่ค่อยได้ใช้ แต่มีความหมายแตกต่างกันในการแก้ไข C ++ ก่อนหน้าดูตัวอย่างที่นี่ )
ฉันต้องการถามว่ามีเหตุผลพิเศษในการเลือกauto
(เพื่อประโยชน์ของvar
คำหลักอื่นหรือไม่) มีการอภิปรายเฉพาะเกี่ยวกับปัญหานี้ก่อนปล่อยมาตรฐาน C ++ 11 หรือไม่
นอกจากนี้ยังมีความเข้ากันไม่ได้ที่เราควรระวังเมื่อทำการคอมไพล์รหัส C ++ ใหม่ด้วยคอมไพเลอร์ C ++ 11 หรือไม่?
auto
VS var
คำถามคือสิ่งที่ 90% ของข้อความของคุณหมายถึงและคำถามที่ไม่มีผลที่ชัดเจน (แม้ว่าฉันไม่ใช่คนที่ลงคะแนนให้ปิด)
auto
ถูกเสนอสำหรับ C ++ ก่อนที่จะvar
ถูกนำมาใช้ใน C # ดังนั้นคำถามที่ควรจะเป็นเหตุผลที่ C # ไม่ใช้อัตโนมัติ var มีความหมายแตกต่างกันใน JavaScript และ Scala
auto
อาจแบ่งความเข้ากันได้ย้อนหลัง แต่ขึ้นอยู่กับความถี่ที่var
ใช้เป็นชื่อตัวแปรเมื่อเทียบกับความถี่ที่ใช้auto
คำหลักในโค้ด pre-11 คณะกรรมการอาจมีความเห็นว่ามันเข้ากันได้น้อยกว่าการแนะนำใหม่ คำหลักจะ