std.metastrings.ToString! problems
BCS
ao at pathlink.com
Thu Jul 23 16:18:29 PDT 2009
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).
More information about the Digitalmars-d
mailing list