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 :
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 ?
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 //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) }
Merci d'avance pour vos réponses.
Partager