#include<iostream>
#include<cmath>
using namespace std;
int Rmax(const int& ival)//删除这里的const将引发错误
{
return -ival;
}
int main()
{
short v1=0;
const int v2=54;
int v3=Rmax(v1);//short类型在有const竟然都可以匹配,没const不会进行整形提升
v3=Rmax(v2);//常引用只能对应常引用的形参
v3=Rmax(2);//字面值也只能对应常引用形参
v3=Rmax(v1+v2);//经过这个验证,常引用形参还可以引用右值
int v4=Rmax(v3);
return 0;
}
总结下:貌似非const引用限制了
1,const常量
2,字符字面值
3,右值
4,允许的类型转换