 <p>I had the same feature in Aix and Linux implementations. In Aix, internal bitset storage is char based:</p> <pre><code>typedef unsigned char _Ty; .... _Ty _A[_Nw + 1]; </code></pre> <p>In Linux, internal storage is long based:</p> <pre><code>typedef unsigned long _WordT; .... _WordT _M_w[_Nw]; </code></pre> <p>For compatibility reasons, we modified Linux version with char based storage</p> <p>Check which implementation are you using inside bitset.h</p>