expression

   
expression Any expression

  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  -  mul-expr   mul-expr  ::=  pm-expr   mul-expr  *  pm-expr   mul-expr  /  pm-expr   mul-expr  %  pm-expr   pm-expr  ::=  cast-expr   pm-expr  .*  cast-expr   pm-expr  ->*  cast-expr   cast-expr  ::=  unary-expr  (  type-id  )  cast-expr   unary-expr  ::=  postfix-expr  ++  cast-expr  --  cast-expr   unary-op   cast-expr  sizeof  unary-expr  sizeof (  type-id  )  new-expr   delete-expr   postfix-expr  ::=  primary-expr   postfix-expr  "["  expression  "]"  postfix-expr  ( [  expr-list  ] )  simple-type-specifier  ( [  expr-list  ] )       typename [::]  nested-name  ::  identifier  ( [  expr-list  ] )       typename [::]  nested-name  :: [template]  template-id  ( [  expr-list  ] )  postfix-expr  . [template]  id-expr   postfix-expr  -> [template]  id-expr   postfix-expr  .  pseudo-dtor-name   postfix-expr  ->  pseudo-dtor-name   postfix-expr  ++  postfix-expr  --  const_cast <  type-id  > (  expression  )       dynamic_cast <  type-id  > (  expression  )       reinterpret_cast <  type-id  > (  expression  )       static_cast <  type-id  > (  expression  )  typeid (  expression  )       typeid (  type-id  )  pseudo-dtor-name  ::= [::] [  nested-name  ::]  type-name  :: ~  type-name  [::]  nested-name  :: template  template-id  :: ~  type-name   primary-expr  ::=  literal  this  (  expression  )  id-expr  

An expression represents a value and a type. See Chapter 3 for details about expressions, precedence, associativity, lvalues and rvalues, and more. Some syntax rules are presented here and in the various keyword sections. The new-expr and delete-expr rules are not duplicated here; see new and delete for details. The id-expr rules are under identifier . See Chapter 1 for information about literals.

See Also

and , and_eq , bitand , bitor , compl , const_cast , delete , dynamic_cast , identifier , new , not , not_eq , or , or_eq , reinterpret_cast , sizeof , static_cast , template , type , typeid , xor , xor_eq , Chapter 3

   


C++ in a Nutshell
C++ in a Nutshell
ISBN: 059600298X
EAN: 2147483647
Year: 2005
Pages: 270
Authors: Ray Lischner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net