【发布时间】:2011-08-31 21:29:33
【问题描述】:
我对这段代码有疑问:
template <typename T>
void dosth(T& value,const T& default_value)
{
if (condition)
value = 10;
else
value = default_value;
}
当我用它调用时
enum {
SITUATION1,
STIUATION2
};
int k;
dosth(k,SITUATION1);
编译器 (g++ 4.5) 说
没有匹配的函数调用'dosth(int&,)'
为什么编译器不自动将枚举转换为 int?
【问题讨论】:
-
我不认为这是重复的,但我认为这是答案的一部分。
-
@Mooing:其实是的,我认为你是对的。我最初错过了转换因子。
标签: c++ templates casting enums