Is this a bug?

Elfstone elfstone at yeah.net
Thu Mar 16 03:40:04 UTC 2023


```D
struct Matrix(S, size_t M, size_t N)
{
}

alias Vec3(S) = Matrix!(S, 3, 1);

void main()
{
     import std.stdio;

     writeln(is(Vec3!float == Matrix!(S, 3, 1), S)); // `alias` 
`S` is defined here
     writeln(is(Matrix!(float, 3, 1) == Matrix!(S, 3, 1), S)); // 
Error: declaration `S` is already defined
}
```

Even though the following code compiles.

```D
     writeln(is(Vec3!float == Matrix!(S, 3, 1), S));
     writeln(is(Vec3!float == Matrix!(S, 3, 1), S));
```


More information about the Digitalmars-d-learn mailing list