Bonjour,
Voici un petit code tout simple qui ne compile pas
J'aurais pourtant cru que les signatures étaient différentes et que les "string literal" étaient de type "character array" et non de type "character pointer".
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 template<class Chr> void pointer_or_array(Chr const *rs) { std::cout << rs << " size: ?" << std::endl; } template<class Chr, size_t Rswz> void pointer_or_array(Chr const (&rs)[Rswz]) { std::cout << rs << " size: " << Rswz << std::endl; } int main() { pointer_or_array("abc");//<- erreur ici pour cause d'ambiguïté char const *abc = "abc"; pointer_or_array(abc); return 0; ]
Comment donc résoudre cette ambiguïté ?
Merci !![]()
Partager