On Sun, 28 Mar 2010 09:26:43 -0400, so <s...@so.do> wrote:

On Sun, 28 Mar 2010 18:18:20 +0400, Fawzi Mohamed <fa...@gmx.ch> wrote:

how?

When you divide 1.0 / 5, compilers warns or implicitly converts "5" to a floating point type, am i wrong?
I told you what i want, remember "zero implicit cast"

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?

I don't always want float as result, but check the function again.
What happens there? "1.0 / m" which will result a floating point type, what code suggests is, that this type will be "T"


What you want is implicit function template instantiation based on the return type. D doesn't do that, it doesn't even allow overloading based on the return type. However, you can infer the return type using auto:

auto inv(T)(T m)
{
   return 1.0/m;
}

-Steve

Reply via email to