#include <iostream>
enum E {
foo, bar, baz
};
void f(int p) {
std::cout << "f: int " << p << std::endl;
}
void f(E p) {
std::cout << "f: E " << p << std::endl;
}
int main() {
int i = 10;
E e = bar;
f(i);
f(e);
}
// gcc -std=c++11 scoped.cpp
enum class FBB {
foo,
bar,
baz
};
int main() {
// FBB fbb = bar; // --> error: ‘bar’ was not declared in this scope
FBB fbb = FBB::bar; // Need to fully qualify scoped enum values
}