<p dir="ltr">On 12 Nov 2015 7:15 am, "Walter Bright via Digitalmars-d" <<a href="mailto:digitalmars-d@puremagic.com">digitalmars-d@puremagic.com</a>> wrote:<br>
><br>
> On 11/11/2015 4:16 PM, Iain Buclaw via Digitalmars-d wrote:<br>
>><br>
>> The main problem for seamless support is having some way to generate the C++<br>
>> typeinfo in D to allow work across boundaries.<br>
><br>
><br>
> I suspect that is unnecessary.<br>
><br>
> The whole point of D's C++ interface is to interface with C++ code. Defining C++ classes in D code that does not link to any C++ code that also defines those classes won't be supported. I.e. we can reply on the C++ code generating the necessary C++ typeinfo. The generated D code only has to link to it, i.e. generate an extern reference to the name of the typeinfo.<br>
><br>
> Similarly, we never need to throw a C++ exception from D code. All we need to do is call a library function written in C++ that throws it for us.<br>
></p>
<p dir="ltr">Yes, never throw a C++ exception from D, even if we manage to intercept the object.</p>
<p dir="ltr">> What D does need to do is support catching an std::exception*, or a class derived from std::exception. I believe we are on solid ground in not supporting any other C++ types being thrown.<br>
><br>
> Nor do I believe we need to catch C++ objects with catch(...). Catching C++ objects will need an explicit catch(std.exception*).<br>
></p>
<p dir="ltr">Well, as demonstrated, that is the one thing that can be supported now for free.  Either by allowing C++-style catch-all or using language specific catch-all class matching.</p>
<p dir="ltr">> Over time, perhaps it may become apparent that we do need to support more kinds of C++ types being thrown. But it is not necessary to get this lead brick airborne, and we shouldn't waste time worrying about it.<br>
></p>
<p dir="ltr">Any type could be caught, again I demonstrated this, but I would have more confidence if g++ generated the typeinfo bindings for us using pragma(mangle) to some D-friendly symbol.  Rather than us pushing in more frail mangling support from our end.</p>
<p dir="ltr">--<br>
Regards, <br>
Iain</p>