Problème de signature d'une fonction
Bonjour,
Je tente de déclarer une fonction prenant des paramètres différents en entrée. Elle a donc plusieurs signatures différentes. Le problème, c'est qu'il arrive au compilateur de choisir la mauvaise fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| //fichier.cpp
#include "myWideString.h"
#include "fichier.h" // contient toutes les déclarations
void function(MyWideString str, bool b)
{
std::cout << str;
std::cout << b;
}
void function(MyWideString str, MyWideString str2)
{
std::cout << str;
std::cout << str2;
}
void run()
{
MyWideString str = MyWideString("Coucou");
MyWideString str2 = L"Salut";
function(str, str2); // Appelle void function(MyWideString str, bool b)
} |
Ici, l'appel à function(str, str2) dans la fonction run est erroné, ce qui m'embête beaucoup. À part caster str2 en MyWideString je ne vois pas ce que je pourrais faire d'autre, et j'avoue que cette solution peu élégante ne me satisfait pas. Comment forcer le programme à choisir la fonction possédant la bonne signature ?
Merci d'avance pour vos réponses.