On Sunday, 17 March 2013 at 01:06:22 UTC, Andrej Mitrovic wrote:
On 3/17/13, Timon Gehr <[email protected]> wrote:
No, if the return type is missing, it is deduced.

What are you talking about? You can't write:

foo() { return 0; }

Timon is right here. The reason you cannot write that is because the parser needs the auto crutch. Basically, the parser just needs to see at least one "storage class" before the function identifier. Note that "storage class" here includes things like pure, which isn't really a storage class (see http://dlang.org/declaration.html#StorageClass)

Note that you can write:

const foo() { return 0; }

Type is deduced here, but the presence of const means that the parser doesn't need any other storage class. auto in D actually just means "I don't want to use any other storage class", the type deduction is triggered by the lack of return type.

Reply via email to