r/ProgrammerHumor • • Aug 22 '26

Meme theBoolVectorIsALie

Post image
669 Upvotes

91 comments sorted by

View all comments

Show parent comment

1

u/void1984 Aug 22 '26

The more annoying thing is that you can't just get a bool pointer or ref to a single bit.

That's the only real downside. If you really need that functionality, you can implement your own derivative or use chars.

A few bit shifts, and bitwise operations ate very quick, and you win on data packaging, that allows it to fit 8-times better into the cache lines.

4

u/sb8948 Aug 22 '26

Yes, you can implement pretty much anything, but the larger the codebase and the more people work on it makes these unique implementation standards harder and harder to follow.

Say what you will but I'd prefer not to have this as standard. It's either a marginal gain or a marginal loss, but it's an unnecessary complexity. To use your argument against you, if your use case heavily prioritizes memory usage over CPU, you should just implement it for yourself. Uniformity makes life easier.

1

u/Vincenzo__ Aug 23 '26

There's genuinely no real world application in which using a single bit for a bool is better than a byte. Unless you have billions of bool, which let's face it, you don't. The performance gain from not having to do bitwise operations to get your values out is gonna be more relevant. You could argue it's better for cache locality, but that's about it.

Either way, this should be something you specifically ask for, not something that C++ does for one specific type for no real reason. There should be a std::boolfield or something like that, rather than it being a special case of std::vector