Try this:

        interface I {}
        class C : I {}
        class D {}
        struct S {}

        pragma(msg, is(C : I)); // true
        pragma(msg, is(D : I)); // false
        pragma(msg, is(S : I)); // false

So probably what you want is something like this:

        void register(C, ARGS...)(ARGS args)
                if (behavesLikeFoo!C || is(C : IFoo))
                ...


T

-- 
Change is inevitable, except from a vending machine.

Reply via email to