Heim >Backend-Entwicklung >C++ >Wie kann ich String-Literale als Vorlagenargumente in C übergeben?

Wie kann ich String-Literale als Vorlagenargumente in C übergeben?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 12:20:10293Durchsuche

How Can I Pass String Literals as Template Arguments in C  ?

Übergabe eines Strings als Vorlagenargument

In C können beim Definieren einer Klassenvorlage auch Nicht-Typ-Parameter angegeben werden. Ein häufiger Anwendungsfall ist die Übergabe von String-Literalen als solche Parameter. So kann dies erreicht werden:

Während es nicht möglich ist, ein String-Literal direkt als nicht typisiertes Vorlagenargument zu übergeben, können Sie einen const char*-Parameter verwenden und eine const char[]-Variable mit statischer Verknüpfung übergeben .

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

Hier hat die Cts-Vorlage einen Nicht-Typ-Parameter str vom Typ const char*. Wir definieren eine statische Variable testStr vom Typ const char[] und übergeben sie als Argument an Cts.

Dieser Ansatz ahmt effektiv das Verhalten der Übergabe von Zeichenfolgenliteralen als Vorlagenargumente nach und ermöglicht Ihnen die Erstellung von Klassenvorlagen die mit bestimmten String-Werten arbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich String-Literale als Vorlagenargumente in C übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn