std::forward是C++11引入的一个函数模板,用于将参数传递给另一个函数,保持其引用类型。在实际使用中,通常用于实现完美转发(perfect forwarding)。
正确使用std::forward的方法如下:
template <typename T> void foo(T&& param) { bar(std::forward<T>(param)); } void baz(int&& param) { bar(std::move(param)); // 将右值引用转移给另一个函数 } void qux(int& param) { bar(std::forward<int>(param)); // 保持左值引用类型 }