Reply to Daniel,
asd wrote:I'm trying to write basic compile-time function: string usedForMixin() { int n=0; /* do stuff */ return "int x = " ~ std.metastrings.ToString!(n) ~ ";"; } However I'm getting: /usr/local/bin/../src/phobos/std/metastrings.d(104): Error: expression cast(long)n is not a valid template value argument If I change int to long: /usr/local/bin/../src/phobos/std/metastrings.d(87): Error: expression n < 0L is not constant or does not evaluate to a bool (D2, OS X)That's because n isn't a compile-time constant. You can't instantiate a template with runtime variables.
that includes "runtime variables" used in CTFE (this is because CTFE functions are also normal runtime functions).
