5 Expressions [expr]

5.2 Postfix expressions [expr.post]

5.2.1 Subscripting [expr.sub]

A postfix expression followed by an expression in square brackets is a postfix expression. One of the expressions shall have the type β€œarray of T” or β€œpointer to T” and the other shall have unscoped enumeration or integral type. The result is of type β€œT.” The type β€œT” shall be a completely-defined object type.64 The expression E1[E2] is identical (by definition) to *((E1)+(E2))Note: see [expr.unary] and [expr.add] for details of * and + and [dcl.array] for details of arrays.  β€” end note ], except that in the case of an array operand, the result is an lvalue if that operand is an lvalue and an xvalue otherwise.

A braced-init-list shall not be used with the built-in subscript operator.

This is true even if the subscript operator is used in the following common idiom: &x[0].