A valid function with no return type?

Stefan Koch uplink.coder at googlemail.com
Thu Sep 24 21:39:18 UTC 2020


On Thursday, 24 September 2020 at 21:32:20 UTC, Meta wrote:
> 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.

Actually that's wrong.
The compiler will happily accept any number of qualifiers you 
stick on your main.


More information about the Digitalmars-d mailing list