在std.traits
模块中,我可以找到类似于:
assert(is(Unqual!(int) == int));
我知道Unqual
会删除任何类型的修饰符,例如不可变的,但'是什么?做?它与if语句有什么不同,何时应该使用?
答案 0 :(得分:8)
is(Unqual!(int) == int)
是表达式,而不是语句。您发布的行在std.traits
中不存在。
我认为你的意思是以下一行:
static assert(is(Unqual!int == int));
请参阅IsExpression的文档。
答案 1 :(得分:5)
is
是一个表达式,允许例如检查类型是否相等,1个类型是另一个类型的子类型,还是T
类/枚举/结构等。
您发布的代码会检查指定的类型是否没有任何修饰符。