On Wednesday, 6 February 2019 at 07:38:04 UTC, ezneh wrote:

Thanks for the trick, I'll try  it and see how it goes.
Since the class have nothing in them, I just made some "alias otherclass = baseclass" statements and it seems it is working (at least it's compiling, have to really test that too). From what I saw about the code is that those types are just "placeholders" because they aren't used directly by the API.


It still might be necessary to add empty struct with 'extern(C++, class)' because alias is, well, just alias, and it needs a real type because C++ signatures do contains parameters types, and obviously there will be no methods that accepts derived class so it will fail to link. That's what that 'alias this' is for. And since this is not direct inheritance it will most likely won't work when object expected to be passed by value (at least not without casting to void* then to base*, i.e. 'someFunc(*cast(baseclass*)cast(void*)&derivedObj)')

Reply via email to