2009-10-07 5 views
14
void Foo(float a){} //1 
void Foo(double a){} //2 overloaded 


Foo(1.0f);       //calls function 1 
Foo(1.0 /*double numeric suffix?*/); //calls function 2 

Si ce n'est pas le cas, est-ce qu'un moulage est le seul moyen d'atteindre cet objectif? Je suis principalement intéressé par les mathématiques assurant double précision lors de certaines opérations, etc:Existe-t-il des suffixes numériques pour spécifier un double?

ulong j; 
double v; 

j = /*some value*/; 
if(j>0UL) 
    v = 1.0/j; //if 1.0 is set as a float by the compiler then 
       //could it be likely we lose some precision here 
       //if a double would allow for more precision? Is 
       //a cast the only means of ensuring double precision? 

Autres conseils sur le compilateur permettant de déterminer automatiquement les types lors d'une opération serait utile.

Répondre

29

Un suffixe est inutile en C++. Toute valeur à virgule flottante qui n'a pas le suffixe «f» sera tapée au type de compilateur double par défaut.

Référence: http://en.wikipedia.org/wiki/C_0x

+0

exactement les informations dont j'ai besoin. Je vous remercie. – BuckFilledPlatypus

Questions connexes