Unfortunately runtime and CTFE are the same target in the compiler.
:-( Will this ever be changed?
```d template Foo(Args) { enum Foo = () { return Args.init; }(); } ``` Something like that should work instead.
I'm sorry, but I can't comprehend any of your example. What would be fed into `Args`? I don't understand how this works, or how I would use it for what I want.