https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116976

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Adding something like this to _Bit_iterator (and _Bit_const_iterator) allows
calling flip():

    struct _Pointer
    {
      reference _M_ref;
      const _Pointer* operator->() const { return this; }
      void flip() const { *_M_ref._M_p ^= _M_ref._M_mask; }
    };

    _Pointer operator->() const { return _Pointer{{_M_p, 1UL << _M_offset}}; }


It wouldn't support vb.begin()->operator bool()
nor vb.begin()->vector<bool>::reference::flip()
But I'm OK with that.

Reply via email to