# Concept RootedRandomAccessIteratorConcept
Rooted iterator with random access.

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

## Member Function Overview

### Member Functions Inherited From EqualityComparableConcept

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

### Member Functions Inherited From LessThanComparableConcept

- `operator<`

### Member Functions Inherited From RandomAccessIteratorConcept

- `operator[]`

## Interface Function Overview

- `void goBegin(it);`
  Set position of rooted random access iterator to the beginning of the container.
- `void goEnd(it, pos);`
  Set position of rooted random access iterator to the end of the container.
- `TPosition position(it);`
  Function to get the position of a rooted random access iterator.
- `void setPosition(it, pos);`
  Set position of a rooted random access iterator.

### Interface Functions Inherited From BidirectionalIteratorConcept

- `goPrevious`
- `operator--(prefix)`
- `operator--(suffix)`

### Interface Functions Inherited From InputIteratorConcept

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

### Interface Functions Inherited From IteratorAssociatedTypesConcept

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

### Interface Functions Inherited From RandomAccessIteratorConcept

- `atNil`
- `difference`
- `goFurther`
- `goNil`
- `operator+`
- `operator+=`
- `operator-=`

### Interface Functions Inherited From RootedIteratorConcept

- `atBegin`
- `atEnd`
- `container`

## Interface Metafunction Overview

- `Position<TIter>::Type`
  Metafunction to get Position type of a rooted random access iterator.

### Interface Metafunctions Inherited From IteratorAssociatedTypesConcept

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

### Interface Metafunctions Inherited From RandomAccessIteratorConcept

- `Difference`

### Interface Metafunctions Inherited From RootedIteratorConcept

- `Container`

## Interface Functions Detail

### `void goBegin(it);`

Set position of rooted random access iterator to the beginning of the container.

#### Parameters

`it` | The iterator to set the position of.

#### Data Races

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

### `void goEnd(it, pos);`

Set position of rooted random access iterator to the end of the container.

#### Parameters

`it` | The iterator to set the position of.

#### Data Races

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

### `TPosition position(it);`

Function to get the position of a rooted random access iterator.

#### Parameters

`it` | The iterator to query for its position.

#### Returns

`TPosition` | The position of `it`

#### Data Races

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

### `void setPosition(it, pos);`

Set position of a rooted random access iterator.

#### Parameters

`it` | The iterator to set the position of.
`pos` | The position to set `it` to.

#### Data Races

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

## Interface Metafunctions Detail

### `Position<TIter>::Type`

Metafunction to get Position type of a rooted random access iterator.

#### Template Parameters

`TIter` | Iterator to query for its position type.

#### Returns

`Type` | The position type of the iterator.

#### Dox Sources

    /*!
     * @concept RootedRandomAccessIteratorConcept
     *
     * @extends RootedIteratorConcept
     * @extends RandomAccessIteratorConcept
     *
     * @brief Rooted iterator with random access.
     *
     * @signature RootedRandomAccessIteratorConcept<T>
     *
     * @mfn RootedRandomAccessIteratorConcept#Position
     *
     * @brief Metafunction to get Position type of a rooted random access iterator.
     *
     * @signature Position<TIter>::Type
     *
     * @tparam TIter Iterator to query for its position type.
     *
     * @return Type The position type of the iterator.
     *
     * @fn RootedRandomAccessIteratorConcept#position
     *
     * @brief Function to get the position of a rooted random access iterator.
     *
     * @signature TPosition position(it);
     *
     * @param[in] it The iterator to query for its position.
     *
     * @return TPosition The position of <tt>it</tt>
     *
     * @fn RootedRandomAccessIteratorConcept#setPosition
     *
     * @brief Set position of a rooted random access iterator.
     *
     * @signature void setPosition(it, pos);
     *
     * @param[in,out] it The iterator to set the position of.
     * @param[in] pos The position to set <tt>it</tt> to.
     *
     * @fn RootedRandomAccessIteratorConcept#goBegin
     *
     * @brief Set position of rooted random access iterator to the beginning of the
     *        container.
     *
     * @signature void goBegin(it);
     *
     * @param[in,out] it The iterator to set the position of.
     *
     * @fn RootedRandomAccessIteratorConcept#goEnd
     *
     * @brief Set position of rooted random access iterator to the end of the
     *        container.
     *
     * @signature void goEnd(it, pos);
     *
     * @param[in,out] it The iterator to set the position of.
     */