深入应用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!

posted @ 2019-07-26 15:22  大鹏赋  阅读(211)  评论(0)    收藏  举报