# Concept RootedIteratorConcept
Iterator that knows its container.

Extends | ForwardIteratorConcept
All Extended | CopyConstructibleConcept, DefaultConstructibleConcept, EqualityComparableConcept, ForwardIteratorConcept, InputIteratorConcept, IteratorAssociatedTypesConcept
All Subcl's | MutableRootedIteratorConcept, MutableRootedRandomAccessIteratorConcept, RootedRandomAccessIteratorConcept
Defined in |
Signature | `RootedIteratorConcept<T>`

## Member Function Overview

### Member Functions Inherited From EqualityComparableConcept

- `operator!=`
- `operator==`

## Interface Function Overview

- `bool atBegin(it);`
  Queries whether the rooted iterator is at the beginning of the container or not.
- `bool atEnd(it);`
  Queries whether the rooted iterator is at the end of the container or not.
- `TContainer container(it);`
  Returns the container.

### Interface Functions Inherited From InputIteratorConcept

- `goNext`
- `operator++(prefix)`
- `operator++(suffix)`
- `operator->`

### Interface Functions Inherited From IteratorAssociatedTypesConcept

- `getValue`
- `operator*`
- `value`

## Interface Metafunction Overview

- `Container<TIterator>::Type`
  Metafunction that returns the container of an iterator.

### Interface Metafunctions Inherited From IteratorAssociatedTypesConcept

- `Difference`
- `GetValue`
- `Pointer`
- `Reference`
- `Value`

## Interface Functions Detail

### `bool atBegin(it);`

Queries whether the rooted iterator is at the beginning of the container or not.

#### Parameters

`it` | The rooted iterator to query.

#### Returns

`bool` | Whether or not the iterator is at the beginning.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `bool atEnd(it);`

Queries whether the rooted iterator is at the end of the container or not.

#### Parameters

`it` | The rooted iterator to query.

#### Returns

`bool` | Whether or not the iterator is at the end.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TContainer container(it);`

Returns the container.

#### Parameters

`it` | The iterator to get the container of.

#### Returns

`TContainer` | The container of the iterat.r

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

## Interface Metafunctions Detail

### `Container<TIterator>::Type`

Metafunction that returns the container of an iterator.

#### Template Parameters

`TIterator` | The type of the iterator to query for its container.

#### Returns

`Type` | The type of the container for `TIterator`

#### Dox Sources

    /*!
     * @concept RootedIteratorConcept
     *
     * @extends ForwardIteratorConcept
     *
     * @brief Iterator that knows its container.
     *
     * @signature RootedIteratorConcept<T>
     *
     * @mfn RootedIteratorConcept#Container
     *
     * @brief Metafunction that returns the container of an iterator.
     *
     * @signature Container<TIterator>::Type
     *
     * @tparam TIterator The type of the iterator to query for its container.
     *
     * @return Type The type of the container for <tt>TIterator</tt>
     *
     * @fn RootedIteratorConcept#container
     *
     * @brief Returns the container.
     *
     * @signature TContainer container(it);
     *
     * @param[in] it The iterator to get the container of.
     *
     * @return TContainer The container of the iterat.r
     *
     * @fn RootedIteratorConcept#atBegin
     *
     * @brief Queries whether the rooted iterator is at the beginning of the
     *        container or not.
     *
     * @signature bool atBegin(it);
     *
     * @param[in] it The rooted iterator to query.
     *
     * @return bool Whether or not the iterator is at the beginning.
     *
     * @fn RootedIteratorConcept#atEnd
     *
     * @brief Queries whether the rooted iterator is at the end of the container or
     *        not.
     *
     * @signature bool atEnd(it);
     *
     * @param[in] it The rooted iterator to query.
     *
     * @return bool Whether or not the iterator is at the end.
     */