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
714 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!

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