Is this a bug?
Elfstone
elfstone at yeah.net
Thu Mar 16 03:44:19 UTC 2023
On Thursday, 16 March 2023 at 03:40:04 UTC, Elfstone wrote:
> ```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));
> ```
Oops, the above code compiles, because I added comments!!!
Now this really doesn't compile:
```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));
writeln(is(Matrix!(float, 3, 1) == Matrix!(S, 3, 1), S));
}
```
More information about the Digitalmars-d-learn
mailing list