Idea: Extern C++ Classes

Walter Bright newshound1 at digitalmars.com
Mon Mar 31 22:25:23 PDT 2008


Craig Black wrote:
> The C++ compatibility provided in D 2.0 is a huge step forward.  
> However, if my understanding is correct, the biggest limitation with it 
> is that D's classes are not ABI compatible with C++ classes.  This means 
> that non-static member functions can't be called between D and C++.
> 
> To remedy this issue, I propose that we allow extern C++ declarations on 
> classes.  This would mean that the class behaves like a C++ class 
> (doesn't inherit Object, no GC by default, only polymorphic if it 
> contains virtual functions, etc.)
> 
> I realize this may require a moderate amount of Walter's time.  I 
> therefore would propose this as perhaps a D 3.0 feature.
> 
> What issues would arise that I am forgetting to address?  Does anyone 
> have a better solution for this?

You can already call C++ member functions declared with extern(C++). The 
problems, however, stem from C++ constructors, destructors, and special 
functions.



More information about the Digitalmars-d mailing list