specializing template with string variable in CTFE
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Oct 26 13:16:18 PDT 2014
On Sunday, 26 October 2014 at 19:32:28 UTC, ketmar via
Digitalmars-d-learn wrote:
> On Sun, 26 Oct 2014 12:46:06 +0000
> via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com>
> wrote:
>
>> The second possibility doesn't exist right now. The core
>> problem is that the compiler needs to be able to generate
>> runtime code for `buildWriter()`, because it's just a function
>> after all.
> but it's templated function, and it's never called in runtime,
> so
> compiler never needs to generate code for it.
The documentation specifically says that:
"Any functions that execute at compile time must also be
executable at run time. [...] This means that the semantics of a
function cannot depend on compile time values of the function."
http://dlang.org/function.html
I can imagine it would be difficult to implement it differently,
because in effect the compiler would need to create a new
instance of the function for every call, with each instance
potentially being completely different (consider `static if` over
CTFE runtime parameters).
More information about the Digitalmars-d-learn
mailing list