On Sat, Oct 3, 2020 at 4:45 PM Steven Schveighoffer via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
On 10/3/20 6:52 AM, claptrap wrote:
> On Saturday, 3 October 2020 at 00:15:02 UTC, Steven Schveighoffer wrote:
>> On 10/2/20 7:28 PM, claptrap wrote:
>>
>>> Why would putting in the writeln cause it to fail? Is it maybe trying
>>> to create the foo at compile time?
>>>
>>
>> Yes, it is. Any static initialization of static variables happens at
>> compile-time.
>>
>> https://dlang.org/spec/declaration.html#global_static_init
>>
>
> Ah.. ok, any idea why this works?
>
> Foo foo = [300,300];

Yeah, it's calling the constructor. I agree with Adam, there's nothing
in the spec that talks about this that I can find.

-Steve

I would say it is here you just need to read it carefully:

https://dlang.org/spec/struct.html#static_struct_init