...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
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:
Parameters: |
|