Rumah > pembangunan bahagian belakang > C++ > Bolehkah Pembolehubah constexpr Memegang Rentetan dalam C?

Bolehkah Pembolehubah constexpr Memegang Rentetan dalam C?

Patricia Arquette
Lepaskan: 2024-11-27 07:35:15
asal
489 orang telah melayarinya

Can constexpr Variables Hold Strings in C  ?

Constexpr Variables and String Literal

Dalam C , constexpr variable mesti mempunyai jenis literal, bermakna ia tidak boleh memegang objek dengan pemusnah bukan remeh . Apabila cuba mentakrifkan pembolehubah rentetan constexpr std::string dalam C 11, ralat ditemui disebabkan oleh pemusnah bukan remeh bagi std::string.

Alternatif untuk Constexpr String Literal

Setakat C 20, adalah mungkin untuk menggunakan std::string dalam constexpr ungkapan dalam keadaan tertentu. Khususnya, std::string mesti dimusnahkan pada akhir penilaian berterusan.

Contoh:

constexpr std::size_t n = std::string("hello, world").size();
Salin selepas log masuk

Dalam contoh ini, std::string akan dimusnahkan sebagai sebahagian daripada ungkapan yang menilai saiz, jadi kod itu sah.

String_View Alternatif

Pilihan lain untuk menggunakan objek seperti rentetan dalam ungkapan constexpr ialah menggunakan std::string_view yang diperkenalkan dalam C 17.

Contoh:

constexpr std::string_view sv = "hello, world";
Salin selepas log masuk

std::string_view mewakili objek seperti rentetan dengan tidak berubah, akses bukan memiliki kepada urutan asas aksara. Ia tidak mempunyai pemusnah yang tidak remeh, menjadikannya sesuai untuk digunakan dalam ungkapan constexpr.

Atas ialah kandungan terperinci Bolehkah Pembolehubah constexpr Memegang Rentetan dalam C?. 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