当我尝试重载函数和函数模板时,我得到了不同的行为。对于函数:
void foo(int)
{
std::cout << "int";
}
void foo(char)
{
std::cout << "char";
}foo(42)是int。但是对于函数模板:
template <int T>
void bar()
{
std::cout << "int T";
}
template <char T>
void bar()
{
std::cout << "char T";
}bar<42>()是不明确的调用。即使我使用字符,比如bar<'a'>(),也会发生这种情况。为什么其中一个可以工作,而另一个不行?
https://stackoverflow.com/questions/37425307
复制相似问题