为什么按值传递和按右值传递重载 C++ 函数调用不明确?

Why is pass by value and pass by rvalue overload c++ function call ambiguous?

如果我有,

void foo(Bar c);
void foo(Bar&& c);

foo(Bar()); 

为什么对 'foo' 的调用不明确? foo 参数中的 Bar() 显然不是 rValue 吗?

绑定到引用是一种 "exact match",绑定到非引用也是如此,因此两种重载都同样好。

在标准语中,这是 13.3.3.1.4("Reference binding"、[over.ics.ref]):

When a parameter of reference type binds directly (8.5.3) to an argument expression, the implicit conversion sequence is the identity conversion [...]