for those who don't know: it's standard (required?) for C++'s std::vector<bool> to be specialized to actually bitpack the booleans, getting you 8x the booleans per allocated byte (nice!)
...at the cost of any API that returns T* or the like now being literally impossible to satisfy, silently deleting random APIs from the std::vector interface (oh no!)
aiui this makes code that generically works with vectors now randomly incompatible with that particular substitution (unless you very carefully avoid those APIs)
@Gankra I don't believe it's required to bitpack, but the APIs are required not to return a pointer so there's no reason not to.