A lambda’s capture list, written in `[ ... ]`, is the only part that can read the surrounding context. An init-capture uses `identifier = initializer`; its semantics resemble `auto` type inference with `const` qualification. Captures that allow writing are mentioned but not developed. section 18.4
Captures in SWAP
A `SWAP` macro uses captures such as `swap_p1 = &(X)` and `swap_p2 = &(Y)` to make the operands available inside the lambda, much like function parameters. section 18.4





