C++ compilers use recursive descent to parse expressions. To fully appreciate expression evaluation, it helps to understand how a compiler views expressions. Expressions are formed from a hierarchy defined as follows:

- primary expressions,
- postfix expressions,
- prefix expressions,
- type casts,
- pointers to members,
- a hierarchy of binary operator expressions,
- conditional operator expressions,
- assignment operator expressions and
- expressions involving the comma operator.

Recursive descent involves analysing an expression using a predefined order of precedence. The above list displays that order of precedence, and the closer to the top of the list an operator occurs, the tighter the binding within an expression. For operators within each category, the documentation indicates whether the order of evaluation is left-to-right or right-to-left.