| Home | Libraries | People | FAQ | More

## Macro BOOST_YAP_USER_UDT_UNARY_OPERATOR

BOOST_YAP_USER_UDT_UNARY_OPERATOR

## Synopsis

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

    BOOST_YAP_USER_UDT_UNARY_OPERATOR(op_name, expr_template, udt_trait)

## Description

Defines a free/non-member operator overload for unary operator op_name that produces an expression instantiated from the expr_template expression template.

The parameter to the defined operator overload may be any type that is not an expression and for which

    udt_trait<std::remove_cv_t<std::remove_reference_t<T>>>::value

is true. The parameter 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.
`op_name` | The operator to be overloaded; this must be one of the unary enumerators in `expr_kind`, without the `expr_kind::` qualification.
`udt_trait` | A trait template to use to constrain which types are accepted as template parameters to the defined operator overload.