Bonjour à tous,
J'ai un problème d'utilisation de fonction template:
Je ne comprend pas bien pourquoi g<0>() et g<i>() compilent alors que f<toto>() me renvoie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <iostream> #include <vector> template<const char* msg> void f() { std::cout << msg << std::endl; } template<int msg> void g() { std::cout << msg << std::endl; } int main() { const int i=10; g<0>(); g<i>(); const char* toto = "Toto"; f<toto>(); f<"Toto">(); return 0; }
et que f<"Toto">() me renvoieerror C2971: 'f' : paramètre de modèle 'msg' : 'toto' : une variable locale ne peut pas être utilisée comme argument sans type
PS: j'utilise Visual2003 comme compilateurerror C2762: 'f' : expression non valide comme argument de modèle pour 'msg'
Partager