Differing levels of type-inference: Can D do this?
Jonathan M Davis
jmdavisProg at gmx.com
Sat Jul 28 14:55:52 PDT 2012
On Saturday, July 28, 2012 17:48:21 Chad J wrote:
> I suppose that works, but it isn't very consistent with how type safety
> is normally done. Also it's extremely verbose. I'd need a lot of
> convincing to chose a language that makes me write stuff like this:
>
> auto foo = someFunc();
> static assert(isInteger!(typeof(foo));
>
> instead of:
>
> int foo = someFunc();
>
> I can tolerate this in D because of the obvious difference in power
> between D's metaprogramming and other's, but it still seems very
> lackluster compared to what we could have.
Why would you even need to check the return type in most cases? It returns
whatever range type returns, and you pass it on to whatever other range-based
function you want to use it on, and if a template constraint fails because the
type wasn't quite right, _then_ you go and figure out what type of range it
returned. But as long as it compiles with the next range-based function, I
don't see why it would matter all that much what the exact return type is.
auto's inferrence is saving you a lot of trouble (especially when it comes to
refactoring). Without it, most range-based stuff would be completely unusable.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list