Also, D already has scope classes, so why not create full featured class bindings?

Suppose, i have this:

class A {
private:
    int x;

public:
    A(int x_) : x(x_) {}
    A(const A& v) : x(v.x) {}
    ~A() {}
};

Why not interfase those as:

extern (C++) {
    struct A {
        int x;
        this(int x_); // call c++ A::A(int)
        this(this);   // call c++ A::A(const A&)
        ~this();      // call c++ A::~A()
    }
}


I mean, methods in c++ are just like functions in namespaces with first T* argument, so this is also just mangling problem; and all those constructors and destructors are not something special either.

What stops to do that?
If value semantics isn't appropriate, user, who writes D interface can just do it in scope class.
Maby discussing that would also do some good.

Reply via email to