A bit can be toggled using the XOR operator (^
).
// Bit x will be the opposite value of what it is currently
number ^= 1LL << x;
std::bitset<4> num(std::string("0100"));
num.flip(2); // num is now 0000
num.flip(0); // num is now 0001
num.flip(); // num is now 1110 (flips all bits)