Order of static this() execution?

drathier forum.dlang.org at fi.fo
Sun Feb 23 11:55:11 UTC 2020


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, like this:

```
template none(msg) {
	T!(msg)  none;
	static this() {
		none = ((std.functional.toDelegate(&batch!(msg) )))(X!(T!(msg) 
));
	}
}
```

The whole reason I have `static this()` is to avoid ctfe crashing 
from trying to run `toDelegate` at compile time:

```
std/functional.d(1501,22): Error: dummyDel.funcptr cannot be 
evaluated at compile time
```


More information about the Digitalmars-d-learn mailing list