static if issue?
DLearner
bmqazwsx123 at gmail.com
Wed Mar 11 15:13:25 UTC 2026
Consider:
```
void main() {
int IntVar1 = 12;
static if (is(typeof(IntVar1) == int)) {
} else {
static assert (false, "Type not int.");
}
}
```
which compiles correctly.
But the inverse logic:
```
void main() {
int IntVar1 = 12;
static if (is(typeof(IntVar1) != int)) {
static assert (false, "Type not int.");
} else {
}
}
```
fails to compile with:
```
test.d(19): Error: found `!=` when expecting `)`
static if (is(typeof(IntVar1) != int)) {
^
test.d(19): Error: found `int` when expecting `)`
static if (is(typeof(IntVar1) != int)) {
^
test.d(19): Error: found `)` instead of statement
static if (is(typeof(IntVar1) != int)) {
^
test.d(22): Error: declaration expected, not `else`
} else {
^
```
Using DMD64 D Compiler v2.112.0 Windows 10
PS Problem with forum.dlang.org - keeps timing out?
More information about the Digitalmars-d-learn
mailing list