- Lvalue: Has an identifiable memory address and name (e.g.
int x = 10;,xis an lvalue). - Rvalue: Temporary value or literal without persistent identity (e.g.
10 + 20, temporary strings).
main.cpp
COPY vs MOVE OF HEAP BUFFER:
COPY: Allocate new buffer -> memcpy elements (Expensive $O(N)$)
MOVE: Steal source pointer (dest.ptr = src.ptr; src.ptr = nullptr;) ($O(1)$ Instantaneous!)