# Perplexity AI - Move Semantics in C++ (Highlights)

## Metadata
**Review**:: [readwise.io](https://readwise.io/bookreview/56173760)
**Source**:: #from/readwise #from/reader
**Zettel**:: #zettel/fleeting
**Status**:: #x
**Authors**:: [[Perplexity AI]]
**Full Title**:: Move Semantics in C++
**Category**:: #articles #readwise/articles
**Category Icon**:: 📰
**URL**:: [www.perplexity.ai](https://www.perplexity.ai/search/explain-move-semantics-in-c-E2eMHqjcSuO4C6N2QSF7zg)
**Host**:: [[www.perplexity.ai]]
**Highlighted**:: [[2025-11-11]]
**Created**:: [[2025-11-15]]
## Highlights
- **Lvalues** are named objects with stable memory addresses that exist beyond a single expression. ([View Highlight](https://read.readwise.io/read/01k9r3c6qcb87tbgr552dbj9f5)) ^956313824
- **Rvalues** are temporary values that are about to disappear, such as the result of expressions or literal constants. ([View Highlight](https://read.readwise.io/read/01k9r3casbcw2cay899gyv7c9z)) ^956313837
- The **rvalue reference** (declared with `&&`) is the core syntax that enables move semantics ([View Highlight](https://read.readwise.io/read/01k9r3cx2g4mndss4snvjzdevc)) ^956313850
- Despite its name, **std::move does not actually perform a move**. Instead, it's a cast that converts an lvalue into an rvalue reference, signaling that the object can be moved from ([View Highlight](https://read.readwise.io/read/01k9r3fxq9c8jzp3e1qx3x6b51)) ^956313971