template<typename T1, typename T2 = T1, int result_kind = poly_coeff_pair_traits<T1, T2>::result_kind>
struct poly_result< T1, T2, result_kind >
poly_result<T1, T2> describes the result of an operation on two
types T1 and T2, where at least one of the types is polynomial:
- poly_result<T1, T2>::type gives the result type for the operation.
The intention is to provide normal C-like rules for integer ranks,
except that everything smaller than HOST_WIDE_INT promotes to
HOST_WIDE_INT.
- poly_result<T1, T2>::cast is the type to which an operand of type
T1 should be cast before doing the operation, to ensure that
the operation is done at the right precision. Casting to
poly_result<T1, T2>::type would also work, but casting to this
type is more efficient.