BOOST_YAP_USER_EXPR_IF_ELSE
// In header: <boost/yap/user_macros.hpp>
BOOST_YAP_USER_EXPR_IF_ELSE(expr_template)
Defines a 3-parameter function if_else()
that acts as an analogue to the ternary operator (?:
), since the ternary operator is not user-overloadable. The return type of if_else()
is an expression instantiated from the expr_template expression template.
At least one parameter to if_else()
must be an expression.
For each parameter E passed to if_else()
, if E is an rvalue, E is moved into the result, and otherwise E is captured by reference into the result.
Example:
template <boost::yap::expr_kind Kind, typename Tuple> struct user_expr { static const boost::yap::expr_kind kind = Kind; Tuple elements; }; // Defines an overload of if_else() that returns expressions instantiated from // user_expr. BOOST_YAP_USER_EXPR_IF_ELSE(::user_expr)
Parameters: |
|