Rumah > pembangunan bahagian belakang > C++ > Bolehkah String Literals Diluluskan sebagai Hujah Templat Bukan Jenis?

Bolehkah String Literals Diluluskan sebagai Hujah Templat Bukan Jenis?

Barbara Streisand
Lepaskan: 2024-11-20 01:27:03
asal
895 orang telah melayarinya

Can String Literals be Passed as Non-Type Template Arguments?

Melalui Huruf Rentetan kepada Parameter Templat Kelas Bukan Jenis

Soalan:

Bolehkah rentetan literal dihantar sebagai hujah bukan jenis kepada templat kelas, seperti dalam perisytiharan seperti my_class<"string">?

Jawapan:

Walaupun menghantar terus literal rentetan sebagai argumen templat bukan jenis tidak mungkin, terdapat penyelesaian yang hampir sama ia.

Anda boleh menggunakan parameter templat bukan jenis jenis const char* dan memberikannya const pembolehubah char[] dengan pautan statik. Pendekatan ini berkongsi persamaan dengan menghantar literal rentetan secara langsung.

Berikut ialah contoh yang boleh disusun:

#include <iostream>

template<const char *str>
struct cts {
    void p() { std::cout << str; }
};

static const char teststr[] = "Hello world!";

int main() {
    cts<teststr> o;
    o.p();
}
Salin selepas log masuk

Kod di atas mengisytiharkan templat kelas cts dengan str parameter templat bukan jenis yang memerlukan pemalar penunjuk watak. Teststr pembolehubah, yang ditakrifkan dengan pautan statik, memegang literal rentetan dan dihantar ke instantiasi templat.

Kaedah ini ialah alternatif yang berdaya maju untuk menghantar literal rentetan secara terus sebagai argumen templat bukan jenis.

Atas ialah kandungan terperinci Bolehkah String Literals Diluluskan sebagai Hujah Templat Bukan Jenis?. 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