Allocation failures
Chris Wright via Digitalmars-d
digitalmars-d at puremagic.com
Wed Feb 17 08:30:31 PST 2016
On Wed, 17 Feb 2016 01:09:20 +0000, Adam D. Ruppe wrote:
> On Wednesday, 17 February 2016 at 00:45:35 UTC, Chris Wright wrote:
>> http://dpldocs.info/search/search?searchTerm=emplace to create an
>> exception object in manually allocated memory.
>
> Aye, this overload:
> http://dpldocs.info/experimental-docs/std.conv.emplace.3.html
>
> though the example there is awful, wtf is it even trying to show?
>
>
> But anyway, you can also throw a static object. That's actually what
> outOfMemoryError does
> <http://dpldocs.info/experimental-docs/
core.exception.onOutOfMemoryError.html>
> - it throws a statically allocated object.
Sure, but that's pretty annoying. You have to ensure that you will never
need to throw two of the same exception at the same time -- or you
allocate several statically and go through hoops to ensure you're using
one that's not currently in use.
It's a lot easier to malloc and free exceptions. Since they're presumably
only cropping up in exceptional circumstances, there's a lot less worry
about making many small allocations.
More information about the Digitalmars-d
mailing list