On 24 January 2016 at 20:40, Walter Bright via Digitalmars-d <[email protected]> wrote: > On 1/22/2016 5:46 PM, Manu via Digitalmars-d wrote: >> >> I brought a work laptop home this weekend in anticipation ;) > > > Here ya go: > > https://github.com/D-Programming-Language/dmd/pull/5364 > > Be wary of: > > https://issues.dlang.org/show_bug.cgi?id=15589 > > and use the workaround as necessary. This is lower priority, so I won't be > dealing with it for a bit.
Next blocker: https://issues.dlang.org/show_bug.cgi?id=15610 C++ methods with multiple-inheritence expect that 'this' is a pointer to the base class that introduced the function. When using C++ 'interface's, which C++ just treats like normal multiple-inheritence, C++ expects that the 'this' pointer is adjusted to the offset of the interface's vtable. If I have: extern(C++) interface Interface { voif f(); } extern(C++) class C : Base, Interface { void f(); } Calling c.f(), D is passing 'this' unaltered, but C++ expects 'this' is a pointer to 'Interface', and then it crashes accessing members at incorrect offsets.
