2

以下是有效的 c++

void g() {}
void (&&r)(void) = g;

有关详细信息,请参阅“右值引用可以绑定到函数吗? ”线程。

我的问题是:使这成为可能的原因是什么?

4

1 回答 1

2

我怀疑这是为了在普通函数和函数对象(包括 lambdas)之间提供一致性。

如果您复制指针或对普通函数的引用,则状态(staticlocals )是共享的,这在某种程度上与移动相同(使旧副本处于不确定但有效的状态)。

于 2013-06-10T19:28:59.507 回答