/*!
* @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>> 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
*/