|  1 |  :: |   Scope resolution |   Left-to-right |  
  |  2 |   ++  --  |   Suffix/postfix increment and decrement  |  
   () |   Function call  |  
   [] |   Array subscripting  |  
  .  |   Element selection by reference  |  
   −>  |   Element selection through pointer  |  
  |  3 |   ++  --  |   Prefix increment and decrement |   Right-to-left |  
  +  −  |   Unary plus and minus  |  
  !  ~  |   Logical NOT and bitwise NOT  |  
   (type) |   Type cast  |  
  *  |   Indirection (dereference)  |  
   &  |   Address-of  |  
   sizeof  |   Size-of |  
   new,new[] |   Dynamic memory allocation  |  
  delete,delete[]  |   Dynamic memory deallocation |  
  |  4 |  .*  ->* |   Pointer to member |   Left-to-right |  
  |  5 |  *  /  % |   Multiplication, division, and remainder |  
  |  6 |  +  − |   Addition and subtraction |  
  |  7 |  <<  >> |   Bitwise left shift and right shift |  
  |  8 |   <  <= |   For relational operators < and ≤ respectively  |  
   >  >=  |   For relational operators > and ≥ respectively  |  
  |  9 |  ==  != |   For relational = and ≠ respectively |  
  |  10 |  & |   Bitwise AND |  
  |  11 |  ^ |   Bitwise XOR (exclusive or) |  
  |  12 |  | |   Bitwise OR (inclusive or) |  
  |  13 |  && |   Logical AND |  
  |  14 |  || |   Logical OR |  
  |  15 |  ?: |   Ternary conditional |   Right-to-Left |  
  |  16 |  = |   Direct assignment (provided by default for C++ classes)  |  
   +=  −=  |   Assignment by sum and difference  |  
   *=  /=  %=  |   Assignment by product, quotient, and remainder  |  
  <<=  >>=  |   Assignment by bitwise left shift and right shift  |  
   &=  ^=  |=  |   Assignment by bitwise AND, XOR, and OR  |  
  |  17 |  throw |   Throw operator (for exceptions) |  
  |  18 |  , |   Comma |   Left-to-right |