On Tuesday, 25 May 2021 at 17:52:14 UTC, Gavin Ray wrote:
```d
void main()
{
Derived dlangDerived = new Derived(123);
printf("[D] Derived.Base1::getSomething() = %d \n",
dlangDerived.getSomething());
printf("[D] Derived.Base2::getOtherThing() = %d \n",
dlangDerived.getOtherThing());
printf("[D] Derived.Base1::inheritedFunctionWithArgs(5, 10) =
%d \n",
dlangDerived.inheritedFunctionWithArgs(5, 10));
printf("[D] Calling C++ takesADerived() with D Derived* \n");
takesADerived(dlangDerived);
}
```

That last one with someInt is what I warned about. D ctor messed
up class layout, in this simple case where class data isn't used
it almost works, but will be practically unusable in real
scenarios.