Comment #0 by bearophile_hugs — 2012-02-12T11:42:53Z
This implements an operator on std.bitmanip.BitArray, to append one or more bits at the beginning:
BitArray opCatAssign(BitArray b)
{
auto istart = len;
length = len + b.length;
for (auto i = istart; i < len; i++)
this[i] = b[i - istart];
return this;
}
BitArray opCat_r(bool b)
{
BitArray r;
r.length = len + 1;
r[0] = b;
for (size_t i = 0; i < len; i++)
r[1 + i] = this[i];
return r;
}
I think there are faster ways to perform those operations, that avoid copying single bits, and work mostly with a memmove() on the array of size_t pointed by BitArray.ptr (followed by few single bit copies if necessary).
In my code I have found that opCat_r() to be slow.
Comment #1 by lovelydear — 2012-04-19T08:55:17Z
See also 7488 and 7490
Comment #2 by robert.schadek — 2024-12-01T16:14:51Z