Avoid deallocate empty arrays?

Steven Schveighoffer schveiguy at gmail.com
Fri Dec 18 12:42:44 UTC 2020


On 12/17/20 5:57 PM, H. S. Teoh wrote:
> On a side note, though, I find this idiosyncratic behaviour annoying
> when all I really want is to use an array as, e.g., a backing for a
> stack.  For those cases, I ignore array capacity and keep a slice over
> the entire allocated storage, including elements that have been erased,
> and keep a separate index that represents the logical end-of-array.
> While .assumeSafeAppend does work well, it does represent a druntime
> function call, which introduces a slight runtime overhead, and it does
> come with a slight performace hit.

Yeah, for quick-and-dirty stuff, runtime appending is decent. But I 
would much rather use an array + "valid" length for everything else, 
including stacks or buffers.

assumeSafeAppend is not only a druntime call, but an opaque one. Which 
means it will never be inlined or optimized out.

-Steve


More information about the Digitalmars-d-learn mailing list