📄️ Lvalues & Rvalues
Every C++ expression has a type and a value category. Lvalues have persistent storage; rvalues are temporaries.
📄️ Value Categories
C++11 refined value categories into five types: lvalue, prvalue, xvalue, glvalue, and rvalue. Understanding these enables perfect forwarding and move semantics.
📄️ Reference Collapsing
When template type deduction creates "reference to reference", C++ applies collapsing rules. This enables perfect forwarding.