On Friday, 17 April 2020 at 17:48:06 UTC, Adam D. Ruppe wrote:
On Friday, 17 April 2020 at 17:31:32 UTC, Jean-Louis Leroy wrote:
Well, can't do. I need this purely at compile time, and cross-module.

And the CTFE engine gets weird with it too.... dmd will have to fix this.

But default parameters might not be possible in general at CT anyway... it is actually possible to define it to a variable. Observe:

int a;

void f(int arg = a) { // default arg is to use the global...
        import std.stdio; writeln(arg);
}

void main() {
        f(); // 0 this time
        a = 4; // and it can be changed at runtime!
        f(); // will now say 4
}

Interesting example, but all hope is not lost. `a` could (should?) be passed as an alias in __parameters.


Reply via email to