Filling an array at compile time
Ali Çehreli
acehreli at yahoo.com
Wed Feb 9 16:37:22 UTC 2022
On 2/9/22 01:07, bauss wrote:
> It will not run at compile-time because csvText is a runtime variable.
> It should be enum to be accessible at compile-time.
Yes. For the sake of completeness, any expression needed at compile time
will be (attempted to be) executed at compile time. For example, an
expression used as a template parameter will be executed at compile time
as well.
> The append operation
> will be executed at runtime, which means that even if the loop runs at
> compile-time then you're effectively not winning anything and it
> basically just becomes a loop-unroll manually done.
That's not true. It all depends on how the expression is needed. If for
example, the variable were defined as enum, the compiler had to execute
the code at compile time to compute its value.
> The solution would be to create a function that returns a string [...]
> And then simply using mixin
That is unnecessary and hurts readability. :/ Most programmers see
string mixins as a last resort.
In any case, some people may find a compile-time file parsing example
that I included in a presentation:
https://youtu.be/dRORNQIB2wA?t=3157
Ali
More information about the Digitalmars-d-learn
mailing list