| Home | Libraries | People | FAQ | More

## Macro BOOST_YAP_USER_ASSIGN_OPERATOR

BOOST_YAP_USER_ASSIGN_OPERATOR

## Synopsis

    // In header: <boost/yap/user_macros.hpp>

    BOOST_YAP_USER_ASSIGN_OPERATOR(this_type, expr_template)

## Description

Defines operator overloads for operator=() that each produce an expression instantiated from the expr_template expression template. One overload is defined for each of the qualifiers `const &`, `&`, and `&&`. For the lvalue reference overloads, `*this` is captured by reference into the resulting expression. For the rvalue reference overload, `*this` is moved into the resulting expression.

The rhs parameter to each of the defined overloads may be any type, including an expression, except that the overloads are cosntrained by std::enable_if<> not to conflict with the assignment and move assignement operators. If rhs is a non-expression, it is wrapped in a terminal expression.

Example:

Parameters:

`expr_template` | The expression template to use to instantiate the result expression. expr_template must be an ExpressionTemplate.
`this_type` | The type of the class the operator is a member of; this is required to avoid clashing with the assignment and move assignement operators.