Adakah `constexpr` Menyiratkan `sebaris` dalam C 11?
Adakah Constexpr Menyiratkan Sebaris dalam C 11?
Piawaian C 11 memperkenalkan penentu constexpr, yang membolehkan fungsi dan pembolehubah dinilai pada masa menyusun. Ini telah membawa kepada beberapa kekeliruan tentang hubungan antara constexpr dan sebaris.
Penentukan sebaris mengarahkan pengkompil untuk melaksanakan pengembangan sebaris fungsi. Ini bermakna kod fungsi akan dimasukkan terus ke dalam kod tempat fungsi dipanggil, dan bukannya mencipta fungsi berasingan yang dipanggil secara tidak langsung.
Penentukan constexpr tidak secara eksplisit membayangkan penentu sebaris. Walau bagaimanapun, piawaian C 11 menyatakan bahawa "fungsi constexpr dan pembina constexpr secara tersirat sebaris" (§7.1.5/2).
Implikasi
Ini bermakna bahawa pengkompil dikehendaki mengikut peraturan yang sama untuk fungsi constexpr seperti yang dilakukan untuk fungsi sebaris. Khususnya, pengkompil boleh menyelaraskan fungsi, walaupun ia dipanggil dengan argumen bukan malar.
Contoh
Pertimbangkan contoh berikut:
<code class="cpp">#include <iostream> #include <cstdlib> inline int f(const int x) { return 2*x; } int main(int argc, char* argv[]) { return f(std::atoi(argv[1])); }</code>
Dalam contoh ini, fungsi f adalah sebaris, walaupun ia dipanggil dengan hujah tidak tetap. Ini kerana fungsi f diisytiharkan sebagai sebaris.
Kesimpulan
Penentukan constexpr tidak secara eksplisit membayangkan penentu sebaris. Walau bagaimanapun, piawaian C 11 memerlukan pengkompil untuk berkelakuan seolah-olah fungsi constexpr adalah fungsi sebaris. Ini bermakna pengkompil boleh menyelaraskan fungsi constexpr dengan selamat, walaupun ia dipanggil dengan hujah tidak tetap.
Atas ialah kandungan terperinci Adakah `constexpr` Menyiratkan `sebaris` dalam C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Gulc: Perpustakaan C dibina dari awal

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?
