Hampir setiap kata yang Anda anggap menambahkan sebagai kata kunci ke bahasa hampir pasti telah digunakan sebagai nama variabel atau bagian lain dari kode kerja. Kode ini akan rusak jika Anda menjadikan kata itu kata kunci.
Hal yang sangat beruntung tentang auto adalah sudah kata kunci, jadi orang tidak memiliki variabel dengan nama itu, tetapi tidak ada yang menggunakannya, karena itu adalah default. Mengapa mengetik:
auto int i=0;
kapan
int i=0;
berarti hal yang persis sama?
Saya kira di suatu tempat di planet ini ada sejumlah kecil kode yang menggunakan 'otomatis' dengan cara lama. Tapi itu bisa diperbaiki dengan menghapus 'otomatis' dan itu akan berfungsi lagi. Jadi itu adalah pilihan yang cukup jelas untuk menggunakan kembali kata kunci.
Saya juga kebetulan berpikir itu adalah makna yang lebih jelas. Jika Anda telah bekerja dengan varian dan semacamnya, ketika Anda melihat varAnda mungkin berpikir bahwa deklarasi tersebut entah bagaimana diketik kurang kuat daripada jika Anda menekan semua tombol sendiri pada keyboard untuk menentukan jenis variabel. Untuk saya,auto jelaskan bahwa Anda meminta kompiler untuk secara otomatis menyimpulkan tipe, yang sama kuatnya seperti jika Anda telah menentukannya sendiri. Jadi itu adalah keberuntungan yang sangat beruntung yang membuat nama baik tersedia untuk panitia.
Untuk mengklarifikasi pelanggaran (kecil):
Jika kamu punya
auto int i=0;
dan mencoba mengkompilasi dengan kompiler C ++ 11, Anda sekarang akan mendapatkan kesalahan seperti
kesalahan C3530: 'otomatis' tidak dapat digabungkan dengan jenis-penentu lainnya
Ini sepele, Anda cukup menghapus auto atau int dan mengkompilasi ulang.
Namun ada masalah yang lebih besar. Jika kamu punya
auto i = 4.3;
C dan C ++ benar-benar tua akan membuat isebuah int(karena akan jika Anda tinggalkan auto- deklarasi standar itu int). Jika Anda telah berjalan sangat lama tanpa mengkompilasi kode ini, atau telah menggunakan kompiler lama, Anda dapat memiliki beberapa kode ini, setidaknya secara teori. C ++ 11 akan membuatnya doublekarena itulah yang 4.3. (Atau mungkin a float, saya masih dalam mode Boxing Day, tapi intinya, bukan int.) Ini mungkin memperkenalkan bug halus di seluruh aplikasi Anda. Dan tanpa peringatan atau kesalahan dari kompiler. Orang-orang di kapal ini harus mencari secara global untuk automemastikan mereka tidak menggunakannya dengan cara lama sebelum mereka pindah ke kompiler C ++ 11. Untungnya, kode seperti itu sangat jarang.
automungkin merusak kompatibilitas ke belakang, tetapi, tergantung pada seberapa seringvardigunakan sebagai nama variabel dibandingkan dengan seberapa seringautokata kunci digunakan dalam kode pra-11, panitia mungkin berpendapat bahwa itu merusak kompatibilitas kurang dramatis daripada memperkenalkan yang baru kata kunci akan.