将结构实例传递给函数不会引发错误

时间:2019-05-15 12:14:26

标签: c++ c++11 reference

我有这种情况:

struct A {};

void foo(A& a) {};
void boo(const A& a) {};

void foo(int& a) {};
void boo(const int& a) {};

int main() {
    foo(A()); //ok... but why?
    boo(A()); //ok

    foo(5); //error
    boo(5); //ok

    return 0;
}

为什么foo(A())起作用而foo(5)不起作用?会不会是同样的情况? A()上的foo(A())rvalue吗?我可以在这种情况下将A()视为临时对象吗?

0 个答案:

没有答案