#include
struct enum_a {
enum constant {
a, b, c, d,
end_of_enum_a = d
};
};
struct enum_b : public enum_a {
enum constant {
e = end_of_enum_a + 1,
f, g, h
};
};
int main() {
std::printf("enum_a: a(%d), b(%d), c(%d), d(%d)\n",
enum_b::a, enum_b::b, enum_b::c, enum_b::d);
std::printf("enum_b: e(%d), f(%d), g(%d), h(%d)\n",
enum_b::e, enum_b::f, enum_b::g, enum_b::h);
return 0;
}
Inheritance to the rescue. :-)