C++ How to use enums for flags?

#include <iostream>

enum Flags {
    FLAG_A = 1 << 0,
    FLAG_B = 1 << 1,
    FLAG_C = 1 << 2,
    FLAG_D = 1 << 3
};

int main() {
    Flags myFlags = FLAG_A | FLAG_C;

    if (myFlags & FLAG_A) {
        std::cout << "FLAG_A is set." << std::endl;
    }

    if (myFlags & FLAG_B) {
        std::cout << "FLAG_B is set." << std::endl;
    }

    if (myFlags & FLAG_C) {
        std::cout << "FLAG_C is set." << std::endl;
    }

    if (myFlags & FLAG_D) {
        std::cout << "FLAG_D is set." << std::endl;
    }

    return 0;
}