Name

expression — Any expression

Synopsis

               expression ::= assignment-expr | expression , assignment-expr
               constant-expr ::= conditional-expr
               expr-list ::= assignment-expr | expr-list , assignment-expr
               assignment-expr ::= conditional-expr | 
    logical-or-expr 
               assignment-op 
               assignment-expr | throw-expr
               assignment-op ::= = | *= | /= | %= | += | -= | >>= | <<= | &= | and_eq | "|=" | 
    or_eq | ^= | xor_eq
throw-expr ::= throw [assignment-expr]
conditional-expr ::= logical-or-expr | logical-or-expr ? expression : assignment-expr
               logical-or-expr ::= logical-and-expr | logical-or-expr "||" logical-and-expr | 
    logical-or-expr or logical-and-expr
               logical-and-expr ::= inclusive-or-expr | logical-and-expr && inclusive-or-expr | 
    logical-and-expr and inclusive-or-expr
               inclusive-or-expr ::= exclusive-or-expr | inclusive-or-expr "|" exclusive-or-expr | 
    inclusive-or-expr bitor exclusive-or-expr
               exclusive-or-expr ::= and-expr | exclusive-or-expr ^ and-expr | 
    exclusive-or-expr xor and-expr
               inclusive-or-expr ::= equality-expr | and-expr & equality-expr | 
    and-expr bitand exclusive-or-expr
               equality-expr ::= relational-expr | equality-expr == relational-expr | 
    equality-expr != relational-expr | equality-expr not_eq relational-expr
               relational-expr ::= shift-expr | relational-expr < shift-expr | 
    relational-expr > shift-expr | relational-expr <= shift-expr | 
    relational-expr >= shift-expr
               shift-expr ::= add-expr | shift-expr << add-expr | shift-expr >> add-expr
               add-expr ::= mul-expr | add-expr + mul-expr | add-expr ...

Get C++ In a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.