On Wednesday, 10 September 2014 at 20:43:44 UTC, Walter Bright wrote:
C++ name mangling distinguishes between a class and a struct. This distinction has no semantic meaning, but there it is in the name mangling. In order to interop, we have to have a way to tell D to mangle a struct as a 'class' when interfacing with C++.

I have some ideas, but they're all kinda ugly.

Any ideas?

Just for clarification. I should notice it relates only to msvc mangling model, which does not respect equivalence of struct and class and use different symbols to mangle them (U and V). There is also warning C4099 because of it. g++ seems to use same mangling regardless of how you declare class (with class or struct keyword).

Even if you find good solution by extending language (for example, by adding extern(C++-struct)) it would make sense only for Windows platforms.

Reply via email to