编译此代码时,我得到以下error:
在函数'int main()'中:第11行:错误:从'Main'类型的临时类型初始化'Main&'类型的非const引用
这是我的代码:
template <class T>
struct Main
{
static Main tempFunction(){
return Main();
}
};
int main()
{
Main<int> &mainReference = Main<int>::tempFunction(); // <- line 11
}
我不明白为什么?谁能解释一下?
1 回答
在C temporaries中不能绑定非常量引用 .
Main<int> &mainReference = Main<int>::tempFunction();
在这里,您尝试将rvalue表达式的结果分配给非常量引用
mainReference
,该引用无效 .试试吧
const