Ü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!