Bolehkah std::string Digunakan dalam Ungkapan Malar dalam C ?

Linda Hamilton
Lepaskan: 2024-11-23 16:43:22
asal
163 orang telah melayarinya

Can std::string Be Used in a Constant Expression in C  ?

Bolehkah std::string Dijelmakan dalam Ungkapan Malar?

Dalam C 11, menggunakan std::string dalam pose ekspresi malar cabaran. Walau bagaimanapun, C 20 menyediakan penyelesaian, walaupun dengan kaveat bahawa std::string mesti dimusnahkan sebelum penilaian berterusan berakhir.

C 20 Solution:

Sementara coretan kod yang anda berikan tidak akan menyusun, kod berikut akan:

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

C 17 Alternatif: string_view

Sebagai alternatif, C 17 memperkenalkan string_view, objek seperti rentetan ringan yang berfungsi sebagai bukan milik merujuk kepada urutan objek char. Tidak seperti std::string, string_view tidak boleh diubah dan tidak memerlukan pemusnahan. Ini menjadikannya sesuai untuk digunakan dalam ungkapan tetap:

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

Atas ialah kandungan terperinci Bolehkah std::string Digunakan dalam Ungkapan Malar 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