完美转发 auto 类型的值

问题描述

我们如何使用 std::forward 为以下代码转发函数自动参数?

void push_value(std::vector<MyType>& vec,auto&& value)
{
    vec.emplace_back(std::forward<?>(value));
}

解决方法

您想要 decltype(value)(value)(没有 forward)。

有些人更喜欢写 std::forward<decltype(value)>(value),但它的作用完全相同,forward 是多余的。