literals

Fawzi Mohamed fawzi at gmx.ch
Sun Mar 28 07:18:20 PDT 2010


On 28-mar-10, at 15:03, so wrote:

> One more thing about the code :
>
> T inv(T m)() {
> 	return 1.0 / m;
> }
>
> What if we call inv(5)?
yes what about it what should the compiler do? read your mind? the  
code that I gave returns 0

> This is an error, why?
>
> - Function explicitly states that the parameter is a floating point  
> type.

how?

> - Operations between floating point types and integers result a  
> floating point type

this is the case

> , as you see from the return type, code returns the type of  
> parameter, in this case an integer.

yes you can write a template that automatically "upconverts" to float,  
but I don't think that is the correct thing for a default thing to do,  
why do you alway want to have floats as result?
>
> Thanks.




More information about the Digitalmars-d mailing list