How to create compile-time container?

Andrey Zherikov andrey.zherikov at gmail.com
Tue Sep 1 19:05:53 UTC 2020


On Tuesday, 1 September 2020 at 18:19:55 UTC, Andrey Zherikov 
wrote:
> The thing I'm trying to implement is: I have a function 
> foo(string s)() and some "state"; this function should override 
> this "state" (using "s" param) for all code within this 
> function (note that code can execute other modules that can 
> refer to the same "state"). The problem is that I need this 
> overridden "state" to be compile-time constant to be used in 
> mixin. Any ideas how I can do this?

In regular code it should look like this:

private string[] state;

string getCurrentState()
{
   return state[$-1];
}

void foo(string s)
{
   state ~= s;
   scope(exit) state = state[0..$-1];

   ...
}



More information about the Digitalmars-d-learn mailing list