template<typename
T,
wi::precision_type = wi::int_traits<T>::precision_type>
struct poly_coeff_traits< T, precision_type >
poly_coeff_traiits<T> describes the properties of a poly_int
coefficient type T:
- poly_coeff_traits<T1>::rank is less than poly_coeff_traits<T2>::rank
if T1 can promote to T2. For C-like types the rank is:
(2 * number of bytes) + (unsigned ? 1 : 0)
wide_ints don't have a normal rank and so use a value of INT_MAX.
Any fixed-width integer should be promoted to wide_int if possible
and lead to an error otherwise.
- poly_coeff_traits<T>::int_type is the type to which an integer
literal should be cast before comparing it with T.
- poly_coeff_traits<T>::precision is the number of bits that T can hold.
- poly_coeff_traits<T>::signedness is:
0 if T is unsigned
1 if T is signed
-1 if T has no inherent sign (as for wide_int).
- poly_coeff_traits<T>::max_value, if defined, is the maximum value of T.
- poly_coeff_traits<T>::result is a type that can hold results of
operations on T. This is different from T itself in cases where T
is the result of an accessor like wi::to_offset.
- poly_coeff_traits<T>::init_cast<Arg>::type is the type to which
an argument of type Arg should be casted before being used to
initialize a coefficient of type T.