On Sunday, 23 February 2020 at 11:55:11 UTC, drathier wrote:
On Sunday, 23 February 2020 at 11:41:25 UTC, Johan Engelen wrote:
On Sunday, 23 February 2020 at 09:59:45 UTC, drathier wrote:
I'm having some trouble with the order in which `static this()` runs. This is the order defined in the source file, numbered for convenience:

To avoid confusion: you have all `static this()` in a single source file? Or across several source files?

-Johan

They're all in a single source file. The `[template]` prints are inside templates,

It's not clear from the language specification, but in this case with templates, I am not surprised that the order of execution is not the same as in the source file. Probably it does fit with the order in the source file if you take into account where the template is instantiated in that file (but you shouldn't depend on that). I strongly recommend not to depend on the order of multiple static this execution, by either rewriting things or by including some logic to make sure things are called in the right order (checking that something has already run, and running it if not, or cancel running it if it already ran)

-Johan

Reply via email to