I've done things like this before with traits and I figured that this way should work as well, but it gives me errors instead. Perhaps someone can point out my flaws.

immutable(T)[] toString(T)(const(T)* str)
        if(typeof(T) is dchar)//this is where the error is
{
return str[0..strlen(str)].idup; //I have strlen defined for each *string
}

I was going to add some || sections for the other string types, but this one won't even compile.

src/dsfml/system/string.d(34): Error: found ')' when expecting '.' following dchar src/dsfml/system/string.d(35): Error: found '{' when expecting identifier following 'dchar.' src/dsfml/system/string.d(36): Error: found 'return' when expecting ')' src/dsfml/system/string.d(36): Error: semicolon expected following function declaration src/dsfml/system/string.d(36): Error: no identifier for declarator str[0 .. strlen(str)] src/dsfml/system/string.d(36): Error: no identifier for declarator .idup
src/dsfml/system/string.d(37): Error: unrecognized declaration


It compiles if I remove the 'if(typeof(T) is dchar)' section. Any thoughts?

Reply via email to