关于C++函数形参中的“&&”解决思路
关于C++函数形参中的“&&”
今天我看boost的源码里面,有这么一句:
shared_ptr & operator=( shared_ptr && r ) // never throws
{
this_type( static_cast< shared_ptr && >( r ) ).swap( *this );
return *this;
}
然后我注意到了 “shared_ptr && r”这个形式。
不明白是什么东西?
难道是引用形参?可是我从来没见过。自己写程序试验,却根本就无法进入这种参数的函数内部(编译却能够成功通过,编译器MSVC 2010)。
上网搜了也没搜到。
希望高手解答一下。不胜感激。
------解决方案--------------------
右值 引用
http://msdn.microsoft.com/en-us/library/dd293668
今天我看boost的源码里面,有这么一句:
shared_ptr & operator=( shared_ptr && r ) // never throws
{
this_type( static_cast< shared_ptr && >( r ) ).swap( *this );
return *this;
}
然后我注意到了 “shared_ptr && r”这个形式。
不明白是什么东西?
难道是引用形参?可是我从来没见过。自己写程序试验,却根本就无法进入这种参数的函数内部(编译却能够成功通过,编译器MSVC 2010)。
上网搜了也没搜到。
希望高手解答一下。不胜感激。
------解决方案--------------------
右值 引用
http://msdn.microsoft.com/en-us/library/dd293668