H1 2015 - C++ integration
Daniel Murphy via Digitalmars-d
digitalmars-d at puremagic.com
Sat Feb 14 11:54:51 PST 2015
"Guillaume Chatelet" wrote in message
news:fzxoskcrswitmsdsztso at forum.dlang.org...
> I did a few tests. Using a class doesn't work because of the added vptr.
This is a bug, D currently adds a vptr even if there are no members. It's
just one that doesn't happen to affect ddmd so I never got around to fixing
it.
> struct std_string {
> void[8] _ = void; // to match sizeof(std::string) and pad the object
> correctly.
> }
>
> The padding will be left untouched on the D side because of void
> initializer and will be managed entirely on the C++ side.
Just remember to be careful that any C++ structs don't rely on interior
pointers.
> - name mangling on linux (bug reported in my first message)
Is this in bugzilla?
> - name mangling on Windows at least (name would be mangled as a struct
> instead of class)
We can probably use pragma(mangle) to fix this or add a new pragma for it.
eg pragma(cpp_class/cpp_struct);
> - disabled default constructor.
Yeeeeah I've always felt like we're going to have to add default struct
ctors to D eventually.
More information about the Digitalmars-d
mailing list