On Sunday, 23 December 2012 at 22:16:54 UTC, Jonathan M Davis
wrote:
Yeah. I don't know what they were complaining about in the pull
request, but I
think that Andrej has it right. Basically, when declaring the
return type, if
you need type inference, use auto, but if you don't, then put
the explicit
type so that it's clearer in the documentation. druntime is
unlikely to need
type inference, as its functions generally return simple,
explicit types
rather than depending on the types passed to them like happens
often in
Phobos. And they don't usually return types which are heavily
templatized,
which is where auto return types really shine.
Using auto for local variables, however, is completely
differente. There, it's
frequently best to use it unless you need to declare a variable
as a specific
type (e.g. size_t i = 0; instead of auto i = 0; when you need
size_t). It
makes refactoring the code easier and reduces code breakage
when types change.
But with return types, it affects the documentation and
people's ability to
figure out what a function does, so as useful as auto return
types can be, they
come with a definite cost and should be avoided if they're not
needed.
- Jonathan M Davis
It's always about local variables.
Kind Regards
Benjamin Thaut