这部分可重点参考《C++ Primer 》第5版 P608-P614,写的很透彻。
Forward的使用
#include<iostream>
#include<string>
#include<vector>
using namespace std;
template<typename T>
void print(T& t) {
cout << "lvalue" << endl;
}
template<typename T>
void print(T&& t) {
cout << "rvalue" << endl;
}
template<typename T>
void TestForward(T && v) {
print(std::forward<T>(v));
}
int main() {
TestForward(1);//rvalue
int x = 1;
TestForward(x);