什么是'' D中的陈述?

时间:2014-04-29 19:32:46

标签: traits d

std.traits模块中,我可以找到类似于:

的行
assert(is(Unqual!(int) == int));

我知道Unqual会删除任何类型的修饰符,例如不可变的,但'是什么?做?它与if语句有什么不同,何时应该使用?

2 个答案:

答案 0 :(得分:8)

is(Unqual!(int) == int)是表达式,而不是语句。您发布的行在std.traits中不存在。

我认为你的意思是以下一行:

static assert(is(Unqual!int == int));

请参阅IsExpression的文档。

答案 1 :(得分:5)

is是一个表达式,允许例如检查类型是否相等,1个类型是另一个类型的子类型,还是T类/枚举/结构等。

您发布的代码会检查指定的类型是否没有任何修饰符。

有关详细信息,请D Language Documentation about IsExpression