What the heck is wrong with CTFE's?
Artur Skawina
art.08.09 at gmail.com
Mon Jul 8 16:34:12 PDT 2013
On 07/09/13 00:57, JS wrote:
> On Monday, 8 July 2013 at 12:11:36 UTC, Dicebot wrote:
>> On Monday, 8 July 2013 at 12:08:44 UTC, JS wrote:
>>> the issue with the foreach is still under question though, when I try to use a for loop with i and access TT[i] I get an error about i not being compile time readable. (maybe this is because of how the type tuple is defined? possibly need a index method to get the value?)
>>
>> Because i is not a compile-time value, it is a normal variable. And TT is a type tuple, pure compile-time entity. You really need to study the documentation on this topic or frustration will continue.
>
> This has nothing to do with it...
>
> string name = "Value"~((i==0) ? "" : (to!string(i)));
> i++;
>
> works, but
>
> string name = "Value"~((i==0) ? "" : (to!string(i++)));
>
> but doesn't....
>
>
> It is a matter of placement of the increment operation on i that is breaking the code and has nothing to do with your default answer of "you don't know how CTFE's work, read the docs!" and "... it's not a compile-time variable".
What should the following program print?
void main() {
import std.stdio;
auto a = 0;
a==0 ? writeln("Hello") : writeln("world!");
}
artur
More information about the Digitalmars-d
mailing list