On 2013-03-30 05:06:31 +0000, "J" <[email protected]> said:
Is there anything that would prevent D from catching C++ exceptions?
It would be nice to be able to leverage C++ libraries, but if you can't
catch C++ exceptions, I'm not sure how realistic that is.
That doesn't mean that catch() in D has to be the catcher.
If there was some way to indicate that a function call was into a C++
library, and perhaps some way to auto-generate, at the call point, the
boilerplate that does the "catch this C++ exception and re-throw it as
a D exception" translation, that would be awesome.
Possible?
In my D/Objective-C hack I made a few years ago, I made it work for
Objective-C exceptions [1]. So it's certainly doable.
[1]: http://michelf.ca/projects/d-objc/syntax/#exceptions
It would be more tricky though because C++ exceptions are thrown
by-value. And some things will have to work differently to accommodate
each platform's ABI. And you'll likely get a performance penalty in
normal code for settings the handler frames.
But it can be done.
--
Michel Fortin
[email protected]
http://michelf.ca/