std::forward是C++11引入的一個函數(shù)模板,用于將參數(shù)傳遞給另一個函數(shù),保持其引用類型。在實際使用中,通常用于實現(xiàn)完美轉(zhuǎn)發(fā)(perfect forwarding)。
正確使用std::forward的方法如下:
template <typename T>
void foo(T&& param) {
bar(std::forward<T>(param));
}
void baz(int&& param) {
bar(std::move(param)); // 將右值引用轉(zhuǎn)移給另一個函數(shù)
}
void qux(int& param) {
bar(std::forward<int>(param)); // 保持左值引用類型
}