/*!
* @class ProfileChar
*
* @headerfile <seqan/basic.h>
*
* @brief Alphabet type for profiles over another alphabet.
*
* @signature template <typename TValue[, typename TCount[, typename TSpec]]>
* class ProfileChar;
*
* @tparam TValue The underlying alphabet type.
* @tparam TCount The type to use for counting, default: <tt>unsigned int</tt>.
* @tparam TSpec Specialization tag, default: <tt>void</tt>
*
* @mfn ProfileChar#ValueSize
*
* @brief Number of different values a value type object can have.
*
* @signature ValueSize<T>::VALUE;
*
* @tparam T The type to query.
*
* @return VALUE Number of different values T can have.
*
* @mfn ProfileChar#SourceValue
*
* @brief Returns underlying value for ProfileChar.
*
* @signature SourceValue<T>::Type
*
* @tparam T Type to query.
*
* @return Type The type of the underlying character.
*
* @section Examples
*
* @code{.cpp}
* typedef ProfileChar<Dna5> TProfileChar;
* typedef SourceValue<TProfileChar>::Type TType; // Is Dna.
* @endcode
*
*
* @var VariableType ProfileChar::count[];
*
* @brief Array of ValueSize elements, giving counts in profile.
*
* @fn ProfileChar#empty
*
* @brief Check whether there are only gaps in the representation of the
* ProfileChar.
*
* @signature bool empty(c);
*
* @param c ProfileChar to query.
*
* @return bool Whether or not the ProfileChar only contains gaps.
*
* @fn ProfileChar#getMaxIndex
*
* @brief Return number of dominating entry in ProfileChar.
*
* @signature TSize getMaxIndex(c);
*
* @param[in] c ProfileChar to query for its dominating entry.
*
* @return TSize index (with the @link FiniteOrderedAlphabetConcept#ordValue
* @endlink) of the dominating character in <tt>c</tt>
*
* @fn ProfileChar#totalCount
*
* @brief Return sum of counts in ProfileChar.
*
* @signature TCount totalCount(c);
*
* @param[in] c ProfileChar to query.
*
* @return TCount Total number of characters represented by <tt>c</tt>.
*/