Inside the std.traits module, I can find a line similar to:

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

I know that Unqual removes any type modifiers like immutable, but what does the 'is' do? How is it different from an if statement and when should it be used?

有帮助吗?

解决方案

is(Unqual!(int) == int) is an expression, not a statement. The line you posted does not exist in std.traits.

I assume you mean the following line:

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

See the documentation for IsExpression.

其他提示

is is an expression that allows for example to check if types are equal, if 1 type is subtype of another or if T a class/enum/struct etc.

The code you posted checks if specified type does not have any modifiers.

For more information se D Language Documentation about IsExpression.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top