[swift-evolution] Bit arrays
taras.zakharko at uzh.ch
Sun Jul 3 17:50:40 CDT 2016
> On 04 Jul 2016, at 00:44, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
>> On Jul 3, 2016, at 2:42 PM, Daryle Walker via swift-evolution <swift-evolution at swift.org> wrote:
>> Since objects aren't addressable by default, there wouldn't be the problems with a bit-packed Boolean collection that C++'s "vector<bool>" has. Does "[Bool]" currently have the option of packed optimization, or would it have to be added via a proposal? Or does it have to be a separate type instead?
> It has to be a separate “bitvector” type.
> FWIW, C++’s vector<bool> optimization is widely considered to be a bad idea, and many people have talked about trying to remove it from the C++ standard entirely.
AFAIK, the problem lies within the vector<bool> implementation. Other bit-packed implementations (e.g. boost:dynamic_bitset) are much more efficient. In certain cases, there are performance advantages to the bit packed representation as it is more cache-friendly.
That said, I don’t think that such specialised data structures should be part of the standard library. I’d leave this to a third-party solution.
More information about the swift-evolution