PrevUpHomeNext

Kinds of Expressions

Most of the expression kinds are the overloadable operators (operator!(), operator<<=(), etc.), See expr_kind for the full list.

There are three special kinds of expressions:

expr_kind::terminal

A terminal contains a non-Expression value, and represents a leaf-node in an expression tree. A terminal may have a placeholder<> value, in which case it acts as a placeholder.

expr_kind::if_else

An if_else expression is analogous to the C++ ternary operator (?:). It's up to you to make sure that the conditional expression given to if_else can be converted to bool; Boost.YAP does not check this.

expr_kind::expr_ref

An expr_ref expression is one that acts as a (possibly const) lvalue reference to another expression. It exists to prevent unnecessary copies of expressions.


PrevUpHomeNext