Calypso: Direct and full interfacing to C++

Elie Morisse via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue Dec 23 14:47:34 PST 2014


On Tuesday, 23 December 2014 at 15:20:18 UTC, Kagamin wrote:
> On Monday, 22 December 2014 at 23:14:44 UTC, Elie Morisse wrote:
>> • Structs
>> https://github.com/Syniurge/Calypso/blob/master/tests/calypso/showcase.d
>
>> testClass cls = new testInherit;
>
> This should be written
>
> testClass* cls = new testInherit;
>
> In C++ struct and class differ only in symbol mangling. They 
> are both value types, support inheritance, copy constructors 
> etc. By looking at the declaration you can't decide if a class 
> should be used as value type or reference type, so better treat 
> it as value type like in C++.

Ah and you're right that this might confuse the user since he has 
to know whether the class/struct is POD or not to know whether to 
use values or references. Hmm.. also simply adding a virtual 
function to a C++ class would break the D code which previously 
considered that class POD :)

So maybe you're right, it might be a better idea to make C++ 
classes values.


More information about the Digitalmars-d-announce mailing list