Why this compiles?
Antonio
antoniocabreraperez at gmail.com
Sun Nov 26 21:45:21 UTC 2023
In this example, ```a``` and ```b``` vars are not of the same
type and don't implement the same interface. **why
```assert(a==b)``` compiles?**
```d
interface IOpt(T) {
bool opEquals(const IOpt!T) const @safe pure;
}
class None(T) : IOpt!T {
bool opEquals(const IOpt!T other) const @safe pure => true;
}
void main() {
auto a = new None!int();
auto b = new None!string();
assert(a==b);
}
```
More information about the Digitalmars-d-learn
mailing list