小编use*_*568的帖子

函数模板重载差异

尝试重载函数和函数模板时,我得到不同的行为.功能:

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'>().为什么一个工作而另一个工作?

c++ language-lawyer

16
推荐指数
1
解决办法
361
查看次数

标签 统计

c++ ×1

language-lawyer ×1