给出以下功能
void foo(int const &a, long const &b)
{
std::cout << "B" << std::endl;
}
void foo(int &&a, long &&b)
{
std::cout << "C" << std::endl;
}
...
// Some where in main(), we called
foo(5.0, 3.5f);
输出将为C,因为r值参考优先于r值。 但是,如果我添加了以下功能。
void foo(int a, char b)
{
std::cout << "A" << std::endl;
}
整件事情都是模棱两可的。
希望我能帮助别人解释一下,谢谢。
答案 0 :(得分:0)
哦,我刚刚意识到,因为所有3个函数的第二个参数必须从float转换为它们各自的参数类型。傻傻的我