深入应用C++ 11 C2
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(v); print(std::forward<T>(v)); print(std::move(v)); } int main() { int x = 1; TestForward(1); TestForward(x); TestForward(std::forward<int>(x)); std::cout << "Hello World!\n"; }
lvalue
rvalue
rvalue
lvalue
lvalue
rvalue
lvalue
rvalue
rvalue
Hello World!