PrevUpHomeNext

Macro BOOST_YAP_USER_UNARY_OPERATOR

BOOST_YAP_USER_UNARY_OPERATOR

Synopsis

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

BOOST_YAP_USER_UNARY_OPERATOR(op_name, expr_template, result_expr_template)

Description

Defines operator overloads for unary operator op_name that each take an expression instantiated from expr_template and return an expression instantiated from the result_expr_template expression template. One overload is defined for each of the qualifiers const &, &, and &&. For the lvalue reference overloads, the argument is captured by reference into the resulting expression. For the rvalue reference overload, the argument is moved into the resulting expression.

Example:

template <boost::yap::expr_kind Kind, typename Tuple>
struct user_expr
{
    static const boost::yap::expr_kind kind = Kind;

    Tuple elements;
};

// Operator overloads for operator!().
BOOST_YAP_USER_UNARY_OPERATOR(logical_not, user_expr, user_expr)

Parameters:

expr_template

The expression template to which the overloads apply. expr_template must be an ExpressionTemplate.

op_name

The operator to be overloaded; this must be one of the unary enumerators in expr_kind, without the expr_kind:: qualification.

result_expr_template

The expression template to use to instantiate the result expression. result_expr_template must be an ExpressionTemplate.


PrevUpHomeNext