<分区>
有些函数有右值参数。还有一个函数也有右值参数。第一个函数调用第二个函数:
void inner(int&& a)
{/* ... */}
void outer(int&& a)
{
inner(std::move(a));
}
我使用 std::move
因为我们使用 std::move
将参数作为右值传递。但是我的同事说 std::forward
在这里更合适,因为我们在这里转发(而不是移动)右值引用:
void outer(int&& a)
{
inner(std::forward(a));
}
这是真的吗?哪个变体更正确?