Tag: ENUM

Use bitset with enum together

/* 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  */