template<typename T>
void f(T) {
}
enum { // if changed to "enum E" it compiles
e
};
int main() {
f(e); // line 10
}
我得到:
foo.cpp: In function ‘int main()’:
foo.cpp:10: error: no matching function for call to ‘f(<anonymous enum>)’
然而,如果enum
聲明中給出一個名字,它編譯。爲什麼它不適用於匿名枚舉?理想情況下,我想它促進枚舉值e
到int
和實例f(int)
。