# Difference between revisions of "Operator precedence"

15 Template instantiation `!` Top-level `,` in rhs expression treated specially. Cannot be chained.
14.5 Lambda abstraction `=>` Not a real operator, occurs twice, this is binding power to the left.
14 Postfix operators `.` `++` `--` `(` `[` `(` and `[` treat top-level `,` in rhs expression specially and require balanced `)` or `]` in order to be completed.
13 Power operator `^^` Right-associative.
12 Unary operators `&` `++` `--` `*` `+` `-` `!` `~` `cast`
11 Multiplicative operators `*` `/` `%`
10 Additive operators `+` `-` `~` Binary `~` is the array concatenation operator.
9 Bit shift operators `<<` `>>` `>>>` `>>>` is the always logical shift operator.
6a Comparison operators `==` `!=` `>` `<` `>=` `<=` `!>` `!<` `!>=` `!<=` `<>` `!<>` `<>=` `!<>=` `in` `!in` `is` `!is` Unordered with respect to bitwise operators. Cannot be chained.
8b Bitwise And `&` Unordered with respect to comparison operators.
7b Bitwise Xor `^` Unordered with respect to comparison operators.
6b Bitwise Or `|` Unordered with respect to comparison operators.
5 Logical And `&&` Short-circuit.
4 Logical Or `||` Short-circuit.
3 Conditional operator `? :` Right-associative.
2 Assignment operators `=` `^^=` `*=` `/=` `%=` `+=` `-=` `~=` `<<=` `>>=` `>>>=` `&=` `|=` `^=` Right-associative.
1.5 Lambda abstraction `=>` Not a real operator, occurs twice, this is binding power to the right.
1 Comma operator `,` Not to be confused with other uses of `,`, though their precedence is the same.
0 Range separator `..` Not a real operator, hardwired into syntax at specific points.