-betterC and extern(C++) classes

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 10 05:18:15 PDT 2017


On Sunday, 10 September 2017 at 08:56:11 UTC, rikki cattermole 
wrote:
> On 10/09/2017 9:40 AM, Yuxuan Shui wrote:
>> I was experimenting with -betterC and found out that C++ 
>> classes doesn't work. Because the resulting object file needs 
>> a symbol "_D14TypeInfo_Class6__vtblZ" which is in druntime. I 
>> suppose this is to support T.classinfo?
>
> Nope.
>
>> Could we remove T.classinfo and make classes work under 
>> -betterC? Or is there some other reason preventing this from 
>> happening?
>> 
>> Thanks.
>
> Definitely not.
>
> Classes require vtable's to work. Vtables are generated as part 
> of TypeInfo. No TypeInfo, no classes, simple to understand.
>
> Same reason why you can't use classes and cross the dll 
> boundary on Windows.
>
> ....

You sure can do that in C++, since Windows 3.x days.

The constraint is that C++ compiler needs to be the same on both 
sides.

Then there is COM as language neutral vtable.



More information about the Digitalmars-d mailing list