On 2009-01-25 14:39:52 -0500, Walter Bright <[email protected]> said:
I did think of making all functions that are extern(C) automatically
nothrow, but was concerned that it would result in a lot of bugs and
broken code from ones that did throw.
It's better that way, because it allows you to write proper wrappers
for C++ functions that may throw exceptions. Like this:
extern "C"
int _doSomething_wrapper(int value)
{
try
{
return doSomething(value);
}
catch (const std::exception & e)
{
_d_throw_exception(e.what());
}
}
with _d_throw_exception written in D and throwing an exception.
--
Michel Fortin
[email protected]
http://michelf.com/