On 26 November 2012 19:38, Adam D. Ruppe <destructionator@gmail.com> wrote:
On Monday, 26 November 2012 at 17:30:46 UTC, Manu wrote:
Error: variable isProperty cannot be read at compile time

This is easy now that I see the code:

template isProperty( T )
{
bool isProperty = false;
}


That should be enum bool isProperty = false. The enum is important because that makes it a compile time value, instead of a runtime variable like regular "bool isProperty".

Generally if you want something at compile time, enum is the magic keyword to put before an otherwise normal variable declaration.

Fix that in both places you did it... and import std.traits of course, and your code compiles.

Not sure if it is right, but it compiles and spits a bunch of output.

Ah crap! Yes I know, this is effectively a typo, I've just been staring at this way too long ;)
It still doesn't work though. Some of that output is wrong, and when I actually use these in context, there are further problems. But it's getting there.