<commit_before>
# New Language
## performance enhancements
### Rvalue references
```
Remember that “&&” indicates a universal reference only where type deduction takes place.  
Where there’s no type deduction, there’s no universal reference.  
In such cases, “&&” in type declarations always means rvalue reference. 

Universal references can only occur in the form “T&&”!  
Even the simple addition of a const qualifier is enough to disable 
the interpretation of “&&” as a universal reference.
```

E.g.

```
void foo(int &&) {
}

template<class T>
void bar(const T &&) {
}

...

int val = 1;
foo(val); // error: cannot bind ‘int’ lvalue to ‘int&&’
bar(val); // error: cannot bind ‘int’ lvalue to ‘int&&’

foo(1); // correct
bar(1); // correct

foo(std::move(val)); // correct
bar(std::move(val)); // correct
```

See detail in [Universal References](https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers).
<commit_msg>Update C++11.md<commit_after>
# New Language
## performance enhancements
### Rvalue references
```
Remember that “&&” indicates a universal reference only where type deduction takes place.  
Where there’s no type deduction, there’s no universal reference.  
In such cases, “&&” in type declarations always means rvalue reference. 

Universal references can only occur in the form “T&&”!  
Even the simple addition of a const qualifier is enough to disable 
the interpretation of “&&” as a universal reference.
```

E.g.

```
void foo(int &&) {
}

template<class T>
void bar(const T &&) {
}

...

int val = 1;
foo(val); // error: cannot bind ‘int’ lvalue to ‘int&&’
bar(val); // error: cannot bind ‘int’ lvalue to ‘int&&’

foo(1); // correct
bar(1); // correct

foo(std::move(val)); // correct
bar(std::move(val)); // correct
```

See detail in [Universal References](https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers).

[The new C++ 11 rvalue reference && and why you should start using it](https://www.codeproject.com/Articles/453022/The-new-Cplusplus-rvalue-reference-and-why-you)

{'fraction_non_alphanumeric': 0.1466275659824047, 'fraction_numerical': 0.015640273704789834, 'mean_word_length': 4.195431472081219, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 3, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1637034', 'n_tokens_mistral': 681, 'n_tokens_neox': 636, 'n_words': 230}