如何创建一个模板来判断参数是否为结构?即如何在没有错误的情况下运行以下代码:
struct X { int a; }
static assert(isStruct!X);
static assert(!isStruct!int);
答案 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);
}