/*!
* @class Iter
*
* @implements IteratorAssociatedTypesConcept
*
* @headerfile <seqan/basic.h>
*
* @brief Base class for iterators to traverse containers.
*
* @signature template <typename TContainer, typename TSpec> class Iter;
*
* @tparam TContainer The type of the container to iterate.
* @tparam TSpec Type to use for specializing the <tt>Iter</tt> class.
*
* @mfn Iter#IterComplementConst
*
* @brief Metafunction that complements the const-ness of the container of an
* iterator.
*
* @signature IterComplementConst<TIter>::Type
*
* @tparam TIter The @link Iter @endlink to complement the container constness
* of.
*
* @return Type The type of the iterator that is the same as <tt>TIter</tt>
* except that the const-ness of the container is complemented.
*
* @mfn Iter#IterMakeConst
*
* @brief Metafunction to make enforce const-ness of the container of an
* iterator.
*
* @signature IterMakeConst<TIter>::Type
*
* @tparam TIter The iterator type to make the container const of.
*
* @return Type The resulting Iter type with a const container.
*
* @mfn Iter#Spec
*
* @brief Return specialization tag of the <tt>Iter</tt> specialization.
*
* @signature Spec<TIter>::Type
*
* @tparam TIter The <tt>Iter</tt> class to get specialization tag of.
*
* @return Type The specialization tag used for the <tt>Iter</tt>.
*
* @mfn Iter#Container
*
* @brief The container type of the iterator.
*
* @signature Container<TIter>::Type
*
* @tparam TIter The <tt>TIter</tt> class to query for its container type.
*
* @return Type The container type of <tt>TIter</tt>
*/