AlgoMaster Logo

Rvalue References (&&)

Last Updated: May 17, 2026

14 min read

The previous lesson introduced move semantics as a way to transfer guts instead of copying them. This chapter is about the language machinery that makes that work, the T&& syntax called an rvalue reference, the three value categories the compiler tracks for every expression, and the overload resolution rules that decide which constructor or assignment your code actually calls. We'll also revisit std::move and show that it's not a special operation at all, it's a one-line static_cast. Forwarding references look identical (T&&) but only appear in deduced contexts and behave very differently, which is the job of a later lesson.

Premium Content

Subscribe to unlock full access to this content and more premium articles.