I think you are mixing two things.
A class bitsetstores bits in compact representations, for example. in an array char, usually 8 bits per char(but YMMV on "exotic" platforms).
A class is bitset::referenceprovided to allow class users to bitsethave reference objects to bits stored in bitset.
, , bitset ( char), lvalue . , , , , operator[], "" lvalue (, , 99% "" ). "-".
-to- bool; bitset::reference, , bitset ( + ) , , .
--- EDIT ---
, g++ bitset::reference , , . , , , .
, , ,
bitset::reference :