Idea: Extern C++ Classes
Craig Black
craigblack2 at cox.net
Tue Apr 1 02:18:01 PDT 2008
"Walter Bright" <newshound1 at digitalmars.com> wrote in message
news:fssh36$8sl$1 at digitalmars.com...
> 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.
But that only works for virtual functions declared using interfaces, right?
That is somewhat limiting. It would be nice to take it a step further.
-Craig
More information about the Digitalmars-d
mailing list