尝试重载函数和函数模板时,我得到不同的行为.功能:
void foo(int)
{
std::cout << "int";
}
void foo(char)
{
std::cout << "char";
}
Run Code Online (Sandbox Code Playgroud)
foo(42)是int.但对于功能模板:
template <int T>
void bar()
{
std::cout << "int T";
}
template <char T>
void bar()
{
std::cout << "char T";
}
Run Code Online (Sandbox Code Playgroud)
bar<42>()是暧昧的电话.即使我使用char,也会发生这种情况bar<'a'>().为什么一个工作而另一个工作?