http://www.boost.org/doc/libs/1_55_0/libs/dynamic_bitset/dynamic_bitset.html
The dynamic_bitset class represents a set of bits. Itprovides accesses to the value of individual bits via anoperator[] and provides all of the bitwise operatorsthat one can apply to builtin integers, such asoperator& and operator<<. The numberof bits in the set is specified at runtime via a parameter to theconstructor of the dynamic_bitset.
The dynamic_bitset class is nearly identical to thestd::bitsetclass. The difference is that the size of thedynamic_bitset (the number of bits) is specified atrun-time during the construction of a dynamic_bitsetobject, whereas the size of a std::bitset is specifiedat compile-time through an integer template parameter.
The main problem that dynamic_bitset is designed tosolve is that of representing a subset of a finite set. Each bitrepresents whether an element of the finite set is in the subsetor not. As such the bitwise operations ofdynamic_bitset, such as operator& andoperator|, correspond to set operations, such asintersection and union.