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.