Priority |
Description |
Operators |
Comments
|
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.
|