A valid function with no return type?

Meta jared771 at gmail.com
Thu Sep 24 21:32:20 UTC 2020


On Thursday, 24 September 2020 at 21:26:30 UTC, Max Haughton 
wrote:
> https://issues.dlang.org/show_bug.cgi?id=12638
>
> https://run.dlang.io/is/jkEIiI
>
> ref foo() {}
>
> void main()
> {
>     import std.traits;
>     pragma(msg, ReturnType!foo);
>     foo();
> }
>
> Assuming this is supposed to be allowed by the standard, 
> replacing void with ref (i.e. ref main { ) does not compile 
> which suggests something isn't right.

Anything other than `void main()`, `void main(string[] args)`, 
`int main()`, `int main(string[] args)` will cause the compiler 
report a compile error. It's probably special-cased in the 
compiler somewhere.


More information about the Digitalmars-d mailing list