/** * http://en.cppreference.com/w/cpp/language/operator_precedence */ // Prefix increment and decrement UNARY(PLUS_PLUS, 3) UNARY(MINUS_MINUS, 3) // Unary plus and minus UNARY(PLUS, 3) UNARY(MINUS, 3) // Logical NOT and bitwise NOT UNARY(TILDE, 3) UNARY(EXCLAMATION, 3) // Multiplication, division, and remainder BINARY(ASTERISK, 5) BINARY(SLASH, 5) BINARY(PERCENT, 5) // Addition and subtraction BINARY(PLUS, 6) BINARY(MINUS, 6) // Bitwise left shift and right shift BINARY(LT_LT, 7) BINARY(GT_GT, 7) // For relational operators < and ≤ respectively BINARY(LT, 8) BINARY(LT_EQUAL, 8) // For relational operators > and ≥ respectively BINARY(GT, 8) BINARY(GT_EQUAL, 8) // For relational = and ≠ respectively BINARY(EQUAL_EQUAL, 9) BINARY(EXCLAMATION_EQUAL, 9) // Bitwise AND BINARY(AMPERSAND, 10) // Bitwise XOR (exclusive or) BINARY(CIRCUMFLEX, 11) // Bitwise OR (inclusive or) BINARY(PIPE, 12) // Logical AND BINARY(AMPERSAND_AMPERSAND, 13) // Logical OR BINARY(PIPE_PIPE, 14) // Assignements BINARY(EQUAL, 15) BINARY(PLUS_EQUAL, 15) BINARY(MINUS_EQUAL, 15) BINARY(ASTERISK_EQUAL, 15) BINARY(SLASH_EQUAL, 15) BINARY(PERCENT_EQUAL, 15) BINARY(LT_LT_EQUAL, 15) BINARY(GT_GT_EQUAL, 15) BINARY(AMPERSAND_EQUAL, 15) BINARY(CIRCUMFLEX_EQUAL, 15) BINARY(PIPE_EQUAL, 15) /** * New operators */ // ...