surcharge de fonction qui provoque une ambiguïté
Bonjour, :D
Voici un petit code tout simple qui ne compile pas :calim2:
Code:
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;
] |
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".
Comment donc résoudre cette ambiguïté ?
Merci ! :coucou: