[phobos] isClass!T

Andrei Alexandrescu andrei at erdani.com
Thu May 19 08:29:15 PDT 2011


Well I kind of dislike that isClass is really isClassOrInterface.

Andrei

On 5/19/11 10:11 AM, Lars Tandle Kyllingstad wrote:
> Several places in Phobos I've noticed tests like if(is(T==class)) that
> check whether T is a class type.  I suspect it is usually meant for
> these tests to pass if T is an interface as well, but this is not the
> case.  Doing
>
>    grep 'is(\w\+\s*==\s*class)' *.d
>
> on the Phobos sources reveals many cases where the test for
> is(T==interface) has most likely been forgotten.  This should be fixed,
> and I think the best way is to add the following to std.traits:
>
>    template isClass(T)
>    {
>        enum isClass = is(T == class) || is(T == interface);
>    }
>
> Most instances of is(T==class) in Phobos can then be replaced with
> isClass!T.
>
> What say you?
>
> -Lars
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos


More information about the phobos mailing list