compile time method check

Simen Kjaeraas simen.kjaras at gmail.com
Fri Dec 26 13:30:47 PST 2008


On Fri, 26 Dec 2008 20:15:30 +0100, Weed <resume755 at mail.ru> wrote:

> Can I at compile time check whether there is a facility method
> (toString(), for example)?
>
> Today I wrote:
>
>                 static if ( __traits(isArithmetic, Element) ) {
>                     ret ~= toString(this[i,j]) ~ "\t";
>                 } else {
>                     ret ~= this[i,j].toString ~ "\t";
>                 }
>
> It works but it is wrong

I believe this works:

static if (is(typeof(this[i,j].toString))) {
	ret ~= this[i,j].toString;
} else {
	ret ~= toString(this[i,j]);
}

-- 
Simen


More information about the Digitalmars-d-learn mailing list