Domanda

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?

È stato utile?

Soluzione

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.

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top