直接初始化引用类型的临时对象

时间:2016-08-11 20:29:56

标签: c++ reference initialization

我很好奇为什么这个程序不会编译。

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 (*)())

0 个答案:

没有答案