Rumah > pembangunan bahagian belakang > C++ > Adakah Kata Kunci `auto` C 11 Terlalu Digunakan: Bilakah Anda Harus Mengelak Penaipan Eksplisit?

Adakah Kata Kunci `auto` C 11 Terlalu Digunakan: Bilakah Anda Harus Mengelak Penaipan Eksplisit?

Susan Sarandon
Lepaskan: 2024-12-08 20:11:10
asal
381 orang telah melayarinya

Is C  11's `auto` Keyword Overused: When Should You Avoid Explicit Typing?

Adakah Kata Kunci Auto C 11 Terlalu Banyak?

Walaupun kata kunci auto telah terbukti tidak ternilai dalam mengendalikan jenis templat yang kompleks, seperti yang dimaksudkan oleh pereka bentuknya, timbul kebimbangan mengenai penggunaannya secara berlebihan dalam senario yang lebih mudah. Patutkah auto digunakan untuk mengelakkan jenis menyatakan secara eksplisit, walaupun untuk ungkapan mudah seperti std::make_shared()?

Penggunaan Yang Dimaksudkan dan Garis Panduan Praktikal

Mengikut jawatankuasa standard C, auto harus digunakan apabila menyatakan secara eksplisit jenis itu mencabar tetapi jenis sebelah kanan adalah jelas. Sebagai contoh, pertimbangkan kod berikut:

my_multi_type::nth_index<2>::type::key_type::composite_key_type::
    key_extractor_tuple::tail_type::head_type::result_type
Salin selepas log masuk

Mendapatkan semula jenis kunci komposit dalam boost::multi_index memerlukan ungkapan kompleks ini. Walaupun jenis itu diketahui sebagai int, auto harus digunakan untuk meningkatkan kebolehbacaan dalam kes sedemikian.

Kes Penggunaan Disyorkan

Gunakan auto apabila:

  • Pembaca boleh membuat kesimpulan dengan mudah jenis yang diwakili oleh auto.
  • Jenisnya jelas di sebelah kanan daripada ungkapan.
  • Ia meningkatkan kebolehbacaan dan menghalang pengulangan yang tidak perlu.

Contoh

  • Menggunakan auto dalam std::make_shared< ;Foo>() sesuai kerana jenisnya jelas.
  • Dalam ungkapan bla(), apabila bla() mengembalikan shared_ptr, penggunaan auto tidak jelas kerana jenis foo tidak pasti.
  • Menggunakan auto dalam gelung di mana jenis iterator diketahui tetapi bukan iterator tertentu, seperti auto it = v.begin();, boleh meningkatkan kod kejelasan.

Cutionary Tales

  • Dengan jelas menyatakan jenis bantuan dalam dokumentasi dan semakan kewarasan.
  • Berhati-hati semasa menggunakan auto untuk gelung dengan pembolehubah tidak bertanda, kerana ia boleh membawa kepada yang tidak dijangka ralat.

Atas ialah kandungan terperinci Adakah Kata Kunci `auto` C 11 Terlalu Digunakan: Bilakah Anda Harus Mengelak Penaipan Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan