C++11 中的 T&&(双与号)是什么意思?
```html
void foo(T&& arg) {
// 做些什么
}
```
以及:
```cpp
void bar(std::vector&& vec) {
// ...
}
```
起初我以为`T&&`是"引用的引用",这听起来毫无意义。后来我读到这叫做"右值引用"(rvalue reference)。但我不明白它的用途。`T&`和`T&&`有什么区别?什么时候应该使用`T&&`而不是`T&`或`const T&`?还有大家常说的"完美转发"(perfect forwarding)到底是什么?
请用简单的例子解释一下。我觉得我遗漏了现代C++中某些重要的东西。
```
简短回答:右值引用与移动语义
你好!我开始学习C++11,在代码中遇到了新的符号`T&&`。我知道`&`是引用,`&&`是逻辑"与"。但在类型上下文中,这是别的东西。
例如,我见过这样的代码:
```cpp template