Verify tuple is a tuple of class objects?

bearophile bearophileHUGS at lycos.com
Fri Feb 18 13:37:29 PST 2011


Sean Eskapp:

> What I'm trying to do is verify that every element of a tuple is a class type,

If you mean a TypeTuple, this is a solution:

import std.typetuple: allSatisfy, TypeTuple;

template IsClass(T) {
    enum IsClass = is(T == class);
}

class Foo {}
class Bar {}
struct Spam {}

alias TypeTuple!(Foo, Bar, Spam) T1;
alias TypeTuple!(Foo, Bar, Foo) T2;

static assert(!allSatisfy!(IsClass, T1));
static assert(allSatisfy!(IsClass, T2));

void main() {}

I don't know if there is a way to write IsClass() in a shorter way, like a "lambda template".

Bye,
bearophile


More information about the Digitalmars-d-learn mailing list