On Saturday, 2 February 2013 at 17:48:14 UTC, FG wrote:
On 2013-02-02 17:36, Namespace wrote:
    ubyte[] arr = new ubyte[4];
    arr ~= 4; // desirable: [4, 0, 0, 0];

Why not arr[0] = 4? What is so special about having 4 elements?

Example:

struct Color {
public:
    ubyte[4] colors;
}

ubyte[] data = new ubyte[color_data.length * 4]; // enough storage
foreach (ref const Color col; color_data) {
    data ~= col.colors;
}

Currently impossible, even with self indexing absolute annoying and unnecessary complicated. Sure you could do the same with .reserve but the point is that you does not want more storage than color_data.length * 4. Currently I use my own struct which reserve only color_data.length * 4 memory and let the index at beginning to 0. But I'm using D because it is nice and simple, so why I should create my own data structure, and use ugly malloc, realloc and free, for such needed thing if the language could and should do that for you?

Reply via email to