Maison > développement back-end > C++ > le corps du texte

Les littéraux de chaîne peuvent-ils être transmis en tant qu'arguments de modèle non-type ?

Barbara Streisand
Libérer: 2024-11-20 01:27:03
original
832 Les gens l'ont consulté

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

Passer des littéraux de chaîne à des paramètres de modèle de classe non-type

Question :

Un littéral de chaîne peut-il être transmis en tant que argument non-type à un modèle de classe, comme dans une déclaration comme my_class<"string">?

Réponse :

En passant directement des littéraux de chaîne comme non Les arguments de modèle -type ne sont pas possibles, il existe une solution qui s'en rapproche étroitement.

Vous pouvez utiliser un paramètre de modèle non-type de type const char* et lui transmettre une variable const char[] avec une liaison statique. Cette approche partage des similitudes avec le passage direct de littéraux de chaîne.

Voici un exemple compilable :

#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();
}
Copier après la connexion

Le code ci-dessus déclare un modèle de classe cts avec un paramètre de modèle non-type str qui prend une constante pointeur de caractère. La variable teststr, définie avec une liaison statique, contient la chaîne littérale et est transmise à l'instanciation du modèle.

Cette méthode est une alternative viable au passage direct de chaînes littérales en tant qu'arguments de modèle non-type.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal