我很好奇为什么这个程序不会编译。
class A{};
void f(const A &a){}
int main(){
const A &a(A())
f(a);
// but the following would work if
// i deleted the above two lines of code
//A b;
//const A &a(b);
//f(a);
}
我认为帖子here表示引用类型的直接初始化和复制初始化之间没有区别,但是当我尝试编译它时(我使用MinGW)我得到错误:
error: invalid initialization of reference of type 'const A&' from expression of type 'const A& (*)(A (*)())'
f(a);
我也很好奇运算符优先级如何与
一起使用const A& (*)(A (*)())