Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah std::string Digunakan dalam Ungkapan Malar dalam C ?

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

Linda Hamilton
Linda Hamiltonasal
2024-11-23 16:43:22185semak imbas

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();

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";

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!

Kenyataan:
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