4
void f(int & i){
cout << "l-value-ref" << endl;
}
void f(int && i){
cout << "r-value-ref" << endl;
}
假设上面的代码,我们有一个重载函数,它分别采用l值参考和r值参考参数。l值参考和r值参考的结合误差
int x = 5;
f(x);
f(5);
const int j = 9;
f(j);
当我使用const int的J = 9编译器给模糊误差。我怎么解决这个问题?
将第一个'f()'改为'const int&i'参数。 –
我很惊讶你的编译器给你这个错误。我给了我“绑定const int到类型int和抛弃限定符的引用”。 – SingerOfTheFall
如果它给出*歧义*错误,那么我认为这个错误是**误导**,因为它们都不能用'int const'类型的参数'j'调用。编译器应该给*“没有找到接受'int const&'”*的函数。 – Nawaz