/* The following code example is taken from the book * “The C++ Standard Library – A Tutorial and Reference” * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided “as is” without express or implied * warranty, and with no claim as to its suitability for any purpose. */ #include <bitset> #include <iostream> using namespace std; int main() { /* enumeration type for the bits * – each bit represents a color */ enum Color { red, yellow, green, blue, white, black, //…, numColors }; // create bitset for all bits/colors bitset<numColors> usedColors; // set bits for two colors usedColors.set(red); usedColors.set(blue); // print some bitset data cout << “bitfield of used colors: ” << usedColors << endl; cout << “number of used colors: ” << usedColors.count() << endl; cout << “bitfield of unused colors: ” << ~usedColors << endl; // if any color is used if (usedColors.any()) { // loop over all colors for (int c = 0; c < numColors; ++c) { // if the actual color is used if (usedColors[(Color)c]) { //… } } } } /* bitfield of used colors: 001001 number of used colors: 2 bitfield of unused colors: 110110 */