|
| template<typename A, typename B, typename Op = scalar_binary_op::product> |
| using | mundy::scalar_binary_op_result_t = typename ScalarBinaryOpTraits<A, B, Op>::ReturnType |
| | The result scalar type of operation Op between A and B (compile error if unsupported).
|
| template<typename A, typename B> |
| using | mundy::scalar_sum_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::sum> |
| template<typename A, typename B> |
| using | mundy::scalar_difference_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::difference> |
| template<typename A, typename B> |
| using | mundy::scalar_product_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::product> |
| template<typename A, typename B> |
| using | mundy::scalar_quotient_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::quotient> |
| template<typename A, typename B> |
| using | mundy::scalar_unary_minus_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::unary_minus> |
| template<typename A, typename B> |
| using | mundy::scalar_min_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::min> |
| template<typename A, typename B> |
| using | mundy::scalar_max_result_t = scalar_binary_op_result_t<A, B, scalar_binary_op::max> |
An operation is permitted iff the trait exposes a ReturnType; an unsupported mix has none and is a compile error. Arithmetic primitives may mix (e.g. float and double); any other mix — including a custom scalar with its passive type — is opted in by specialization.