On Friday, 13 February 2015 at 21:08:58 UTC, Marc Schütz wrote:
On Friday, 13 February 2015 at 19:09:43 UTC, Tobias Pankrath
wrote:
1. Throw preallocated exceptions is the way to go
... and because noone has yet shown an explicit example:
void myThrowingNogcFunc() @nogc {
static const exc = new Exception("something went
wrong");
throw exc;
}
As long as you don't need to pass a runtime argument to the
constructor, there's no need for emplace acrobatics.
Why not? If the argument is static? (A string literal, surely
this shouldn't be a problem and usually what is used?)
void myThrowingNogcFunc(string s)() @nogc
{
static const exc = new Exception(s);
throw exc;
}
?
I too am looking for nogc exceptions.
How about simply setting aside a 100kb of memory as a pool for
exceptions. Seems like a lot but still under 640kb, hell, even
1MB would still be tiny.
After all, it's not like exceptions are common or happen in
complex ways.
Does anyone have a proper solution to this problem? I'd like nogc
exception handling with run-time generated args.