GCC Middle and Back End API Reference
poly_coeff_traits< T, precision_type > Struct Template Reference

Detailed Description

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.   

The documentation for this struct was generated from the following file: