On Monday, 3 July 2023 at 09:50:20 UTC, Arafel wrote:
Is this a conscious design decision (if so, why?), or just a leak of some implementation detail, but that could eventually be made to work?

Besides the pointer adjustment problem mentioned by FeepingCreature, it's an unsound conversion even with just class inheritance. Consider:

```
class A {}
class B : A {}
class C : A {}

void main()
{
  auto bArr = [new B()];
  A[] aArr = bArr; // If this was allowed..
aArr[0] = new C(); // This would be a problem, because bArray would now contain a C.
}
```

Reply via email to