# Fn<> IntegralForValue
Returns an itegral type that provides sufficient space to store a value.

Defined in | <seqan/basic.h>
Signature | `IntegralForValue<T>::Type;`

## Template Parameters

`T` | The type to query.

## Return Values

`Type` | An integral type.

## Detailed Description

The type is the smallest unsigned integral type that has a size of at least BytesPerValue bytes.

sizeof(T) in bytes | integral types
--- | ---
1 | `unsigned char`
2 | `unsigned short`
3 | `unsigned int`
4 | `unsigned int`
> 4 | `int64_t`

Note that the returned integral type cannot store `T` values, if `T` takes more than 8 bytes, since there exists no integral type that provides sufficient space to store types of this size.

## See Also

- BitsPerValue
- BytesPerValue
- ValueSize

#### Dox Sources

    /*!
     * @mfn IntegralForValue
     *
     * @headerfile <seqan/basic.h>
     *
     * @brief Returns an itegral type that provides sufficient space to store a
     *        value.
     *
     * @signature IntegralForValue<T>::Type;
     *
     * @tparam T The type to query.
     *
     * @return Type An integral type.
     *
     * The type is the smallest unsigned integral type that has a size of at least
     * BytesPerValue bytes.
     *
     * <table> <tr> <th>sizeof(T) in bytes</th> <th>integral types</th> </tr> <tr>
     * <td>1</td> <td><tt>unsigned char</tt></td> </tr> <tr> <td>2</td>
     * <td><tt>unsigned short</tt></td> </tr> <tr> <td>3</td> <td><tt>unsigned
     * int</tt></td> </tr> <tr> <td>4</td> <td><tt>unsigned int</tt></td> </tr> <tr>
     * <td>&gt; 4</td> <td><tt>int64_t</tt></td> </tr> </table>
     *
     * Note that the returned integral type cannot store <tt>T</tt> values, if
     * <tt>T</tt> takes more than 8 bytes, since there exists no integral type that
     * provides sufficient space to store types of this size.
     *
     * @see FiniteOrderedAlphabetConcept#ValueSize
     * @see AlphabetConcept#BitsPerValue
     * @see BytesPerValue
     */