BOOST_YAP_USER_CALL_OPERATOR
// In header: <boost/yap/user_macros.hpp>
BOOST_YAP_USER_CALL_OPERATOR(expr_template)
Defines operator overloads for the call operator taking any number of parameters ("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 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:
template <boost::yap::expr_kind Kind, typename Tuple> struct user_expr { static const boost::yap::expr_kind kind = Kind; Tuple elements; // Member operator overloads for operator()(). These will match any // number of parameters. Each one can be any type, even another // expression. BOOST_YAP_USER_CALL_OPERATOR(::user_expr) };
Parameters: |
|