"Igor Stepanov" <wazar.leoll...@yahoo.com> wrote in message news:wuevxraaffhaaceap...@forum.dlang.org... > Is this mean, that D functions will _not_ create C++ objects with new? > For example: > You have moved parser to D, but you haven't moved expressions to D yet. > And you want to create new Expression object in parser (in D code), but > Expression class defined in C++. What will you do in this case?
This is not how we're moving it. The entire frontend will be moved in one go, there will never be a need to create a C++ class from D. That said, the glue layer will remain in C++ and will need to create instances of classes defined in D. The current glue layer calls 43 different constructors. I don't have a solution for this yet, but it will probably be: a) Extend D to allow creating classes with constructors callable from C++ b) Create/generate factory functions for each class new'd in the glue layer c) Remove all class allocations from the glue layer I'm leaning towards b, or maybe c, and I think you should too.