| Home | Libraries | People | FAQ | More

## Macro BOOST_YAP_USER_CALL_OPERATOR_N

BOOST_YAP_USER_CALL_OPERATOR_N

## Synopsis

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

    BOOST_YAP_USER_CALL_OPERATOR_N(expr_template, n)

## Description

Defines operator overloads for the call operator taking N parameters ("operator()(t0, t1, ... tn-1)") 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 u parameters to each of the defined overloads may be any type, including an expression. Each non-expression 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.
`n` | The number of parameters accepted by the operator() overloads. n must be <= BOOST_PP_LIMIT_REPEAT.