判断模板参数是否为struct

时间:2015-08-11 16:30:29

标签: d traits

如何创建一个模板来判断参数是否为结构?即如何在没有错误的情况下运行以下代码:

struct X { int a; }
static assert(isStruct!X);
static assert(!isStruct!int);

1 个答案:

答案 0 :(得分:8)

使用is表达式。

struct X { int a; }
static assert(is(X == struct));
static assert(!is(int == struct));

但如果你真的想要一个模板:

template isStruct(T)
{
    enum bool isStruct = is(T == struct);
}