Rumah > pembangunan bahagian belakang > C++ > Apakah Perubahan Memecahkan Yang C 11 Perkenalkan?

Apakah Perubahan Memecahkan Yang C 11 Perkenalkan?

Patricia Arquette
Lepaskan: 2024-12-11 14:43:10
asal
919 orang telah melayarinya

What Breaking Changes Did C  11 Introduce?

Perubahan Pecah Diperkenalkan dalam C 11

C 11 memperkenalkan beberapa perubahan pecah yang boleh menyebabkan kod yang sah sebelum ini gagal semasa penyusunan. Satu perubahan ketara ialah pengenalan operator eksplisit bool() dalam perpustakaan standard, menggantikan contoh operator void*(). Walaupun perubahan ini terutamanya mempengaruhi kod tidak sah yang bergantung pada penukaran tersirat, perubahan ini masih merupakan perubahan terputus.

Perubahan Bahasa Teras

  • Kata kunci alignas, alignof, char16_t , char32_t, constexpr, decltype, noexcept, nullptr, static_assert dan thread_local diperkenalkan.
  • Harta integer yang lebih besar daripada panjang kini boleh dianggap sebagai panjang yang ditandatangani dan bukannya integer yang tidak ditandatangani.
  • Bahagian kini sentiasa membulat ke arah 0, tidak seperti C 2003, yang boleh membundar ke arah infiniti negatif dalam beberapa kes.
  • Kata kunci automatik tidak boleh lagi digunakan sebagai penentu kelas storan, kerana ia dikhaskan untuk ciri baharu.
  • Penukaran yang menyempitkan menyebabkan ketidakserasian. Sebagai contoh, memberikan gandaan kepada int kini tidak sah.
  • Fungsi ahli khas tersirat ditakrifkan sebagai dipadamkan apabila takrifan eksplisitnya tidak terbentuk, mengakibatkan ralat dalam kod yang sah sebelum ini.
  • Pemusnah yang diisytiharkan pengguna mempunyai spesifikasi pengecualian tersirat (noexcept(true)), yang boleh mencetuskan gelagat berbeza dalam tangkapan blok.
  • Kata kunci eksport tidak lagi sah dalam C 11.
  • Pengendali >> kini boleh digunakan untuk menutup dua templat, yang berpotensi menjejaskan kod yang menggunakan jujukan >> sebagai pengendali syif.
  • Panggilan bergantung fungsi dengan pautan dalaman kini dibenarkan.

Perubahan Perpustakaan

  • Perpustakaan standard pengecam yang diperkenalkan dalam C 11 mungkin bercanggah dengan yang ditentukan pengguna pengecam.
  • Pengepala termasuk yang merujuk kepada pengepala baharu dalam pustaka standard C 11 mungkin gagal untuk disusun.
  • Fungsi swap telah dialihkan daripada kepada .
  • Ruang nama global posix kini dikhaskan.
  • Timpa makro, muktamad, kebergantungan_bawa dan noreturn tidak lagi sah.

Atas ialah kandungan terperinci Apakah Perubahan Memecahkan Yang C 11 Perkenalkan?. 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