On Saturday, 11 August 2012 at 18:56:30 UTC, Jakob Ovrum wrote:
struct S(T) {}

template isS(T : S!U, U) {
    enum isS = true;
}

template isS(T) {
    enum isS = false;
}

static assert(isS!(S!float));
static assert(!isS!float);

Same idea, but doing it with just one template and using static ifs...

struct S(T) {}

template isS(T) {
    static if(is(T _ : S!U, U))
        enum isS = true;
    else
        enum isS = false;
}

static assert(isS!(S!float));
static assert(!isS!float);

Reply via email to