On Tuesday, November 06, 2012 02:27:24 bearophile wrote: > void main() { > auto array = [1, 2, 3, 4, 5]; > array.assumeSafeAppend(); > foreach (i; 0 .. 10_000_000) { > array.length--; > array ~= i; > } > }
assumeSafeAppend needs to be called every time that length is decremented. It does nothing in this example, because when it's called, array is already marked as the last slice in its block. - Jonathan M Davis