February 17, 2021
Hi!

How do I wrap an existing C++ class with a virtual destructor in D? Take, for example, this C++ class:

class Base {
public:
    virtual ~Base();

    virtual void foo() = 0;
}

What does the equivalent extern(C++) declaration in D look like? I don't care about calling the destructor. My only concern is matching the vtable. Changing the C++ code is not an option in my case.
February 18, 2021
On Wednesday, 17 February 2021 at 22:53:05 UTC, Gregor Mückl wrote:
> Hi!
>
> How do I wrap an existing C++ class with a virtual destructor in D? Take, for example, this C++ class:
>
> class Base {
> public:
>     virtual ~Base();
>
>     virtual void foo() = 0;
> }
>
> What does the equivalent extern(C++) declaration in D look like? I don't care about calling the destructor. My only concern is matching the vtable. Changing the C++ code is not an option in my case.

extern(C++) class Base {
    ~this();
    abstract void foo();
}