Rumah > pembangunan bahagian belakang > C++ > Apakah Perubahan Memecahkan Yang Perlu Saya Ketahui Semasa Berhijrah ke C 11?

Apakah Perubahan Memecahkan Yang Perlu Saya Ketahui Semasa Berhijrah ke C 11?

Susan Sarandon
Lepaskan: 2024-12-23 16:41:16
asal
802 orang telah melayarinya

What Breaking Changes Should I Be Aware of When Migrating to C  11?

Apakah Perubahan Pecah Yang Diperkenalkan dalam C 11?

Salah satu perubahan ketara yang diperkenalkan dalam C 11 ialah operator eksplisit bool() dalam perpustakaan standard, menggantikan contoh operator void*(). Walaupun perubahan ini harus menangani kod tidak sah, terdapat kemungkinan perubahan pecah lain yang perlu dipertimbangkan.

Ketidakserasian Bahasa Teras

  • Tafsiran Huruf Rentetan Terubahsuai: Makro pratakrif seperti "u8" boleh mengubah suai rentetan literal.
  • Huruf Rentetan Ditakrifkan Pengguna: "_x" dalam literal rentetan kini mencipta literal rentetan yang ditakrifkan pengguna, bukannya mengembangkan makro.
  • Kata Kunci Baharu : Kata kunci yang diperkenalkan seperti "constexpr" dan "thread_local" boleh memecahkan pengecam sedia ada nama.
  • Pengubahsuaian Literal Integer: Literal integer yang melebihi julat "panjang" kini boleh menjadi "panjang panjang."
  • Pengubahsuaian Bahagian Integer: Tingkah laku pembundaran pembahagian integer C 03 mungkin berbeza daripada pembundaran C 11 ke arah 0.
  • "auto" sebagai Penentu Storan: Kod C 03 menggunakan "auto" sebagai penentu storan mungkin menjadi tidak sah.
  • Menyempitkan Penukaran: C 03 penyempitan penukaran (mis., dua kali ganda kepada int) kini mungkin tidak sah.
  • Pemadaman Fungsi Ahli Khas Tersirat: Fungsi ahli yang ditakrifkan secara tersirat yang salah akan dipadamkan secara automatik.
  • Spesifikasi Pengecualian Pemusnah: Pengguna- pemusnah yang diisytiharkan kini mempunyai noexcept(true) tersirat spesifikasi.
  • Penghapusan Pengisytiharan "eksport": Pengisytiharan C 03 menggunakan "eksport" kini tidak sah.
  • Pengubahsuaian Penutup Templat: "> >" dalam templat kini boleh menutup dua templat dan bukannya hanya dianggap sebagai operator anjakan.
  • Panggilan Bergantung bagi Fungsi Pautan Dalaman: Panggilan bergantung bagi fungsi pautan dalaman kini dibenarkan.

Perpustakaan Pengubahsuaian

  • Pengecam Ruang Nama: Pengecam yang ditambahkan pada pustaka standard mungkin memecahkan kod sedia ada.
  • Kepala Termasuk: Pengepala sebelum ini terletak dalam pengepala standard tertentu (cth., , ) mungkin telah berpindah ke tempat lain.
  • Ruang Nama "posix": Ruang nama "posix" kini dikhaskan untuk penyeragaman masa hadapan.
  • Definisi Makro : Mentakrifkan "override," "final," "carries_dependency," atau "noreturn" seperti yang mungkin makro kini menjadi tidak sah.

Atas ialah kandungan terperinci Apakah Perubahan Memecahkan Yang Perlu Saya Ketahui Semasa Berhijrah ke C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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