Enumerations enumerators are basically integral types underneath. This underlying type is called base of the enums. They represent an integral value. What type of integral value is specific to the compiler implementation. However, as they are distinct type, compiler matches for the enum not int.

For example,

enum Color
{
    red, // 0
    green, // 1
    blue, // 2
};

Assuming the base is int and it is 32-bit architecture machine, the size of enumerator will be 32bits.

If we want to be specific with the integral type and size, we can use fixed types as shown below:

 
enum Color : std::int64_t
{
    red,
    green,
    blue,
};
 
Color value{green};
std::cout << sizeof(value) << "\n";

References

  1. https://www.learncpp.com/cpp-tutorial/unscoped-enumerator-integral-conversions/