J'ai besoin d'afficher a la fois des types const, volatile, et sans qualificateurs, or quand je compile
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
 
 
void Affiche(const double& d)
{
    //** qqchose
}
 
void Affiche(volatile double& d)
{
    //** même chose
}
 
int main()
{
   const double C = 1.2;
   volatile double V = C+1;
   double D = V+1;
   Affiche(C);
   Affiche(V);
   Affiche(D);
}
J'ai une erreur de compilation concernant 'Affiche(D);' car le compilateur ne sait pas laquelle des deux surcharges de Affiche appeler.

J'imagine que je pourrais proposer une troisième surcharge d'Affiche du type

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void Affiche(double& d)
{
    //***meme chose
}
Mais par paresse j ai utilisé

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
 
template<class T> void Affiche(T& d)
{
    //** toujours le meme code
}
 
 
int main()
{
   const double C = 1.2;
   volatile double V = C+1;
   double D = V+1;
   Affiche(C);
   Affiche(V);
   Affiche(D);
}
Et la ça marche...

Ma question est : est ce que j'ai 'bien' fait ou ai je raté un wagon ?