C++ 完美转发(泛型模板函数)

完美转发是指在泛型模板函数中,以参数的原始形式(左值或右值)传递给目标函数,从而避免不必要的拷贝或移动操作。
不使用完美转发,本质上是右值在传递中,默认变成左值,触发深拷贝。

#include 
#include  // 必须包含此头文件以使用std::forward

using namespace std;

// 处理左值引用
void process(int& x) {
    cout << "Lvalue reference: " << x << endl;
}

// 处理右值引用
void process(int&& x) {
    cout << "Rvalue reference: " << x << endl;
}

// 泛型函数,使用完美转发
template <typename T>
void forwardExample(T&& arg) {
    process(std::forward<T>(arg)); // 保持原始值类别
    // process(arg); // 不使用完美转发
}

int main() {
    int a = 10;
    forwardExample(a);  // 传递左值
    forwardExample(20); // 传递右值
    return 0;
}

你可能感兴趣的:(C++,基础,c++,算法,开发语言)