# Spec OutEdgeIterator
Out-edge iterator for Graph.

Extends | Iter
All Extended | Iter
All Impl'd | IteratorAssociatedTypesConcept
Defined in |
Signature | `Iterator<TGraph, OutEdgeIterator>::Type; template <typename TGraph, typename TSpec> class Iter<TGraph, GraphIterator<InternalOutEdgeIterator<TSpec> >;`

## Template Parameters

`TGraph` | The graph to iterate the edges of.

## Member Function Overview

- `Iter::Iter();, Iter::Iter(iter);, Iter::Iter(graph, v);`
  Constructor

### Member Functions Inherited From Iter

- `Iter`

## Interface Function Overview

- `TAlphabet label(it);`
  Returns the label of the out-edge this iterator points to (for automatons);

### Interface Functions Inherited From IteratorAssociatedTypesConcept

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

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Iter

- `Container`
- `IterComplementConst`
- `IterMakeConst`
- `Spec`

### Interface Metafunctions Inherited From IteratorAssociatedTypesConcept

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

## Detailed Description

The first signature is the signature of the corresponding graph's Iterator metafunction call. The second call is the internal definition of the type. You should always get this type using the metafunction call from the first signature.

## Member Functions Detail

### `Iter::Iter(); Iter::Iter(iter); Iter::Iter(graph, v);`

Constructor

#### Parameters

`iter` | Other OutEdgeIterator to copy from.
`graph` | The Graph to iterate edges of.
`v` | The descriptor of the vertex to iterate out edges of.

#### Data Races

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

## Interface Functions Detail

### `TAlphabet label(it);`

Returns the label of the out-edge this iterator points to (for automatons);

#### Parameters

`it` | The iterator to query.

#### Returns

`TAlphabet` | The current label (Alphabe is the alphabet of the automaton).

Only works if the graph type is an Automaton.

#### Data Races

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

#### Dox Sources

    /*!
     * @class OutEdgeIterator
     *
     * @extends Iter
     *
     * @brief Out-edge iterator for @link Graph @endlink.
     *
     * @signature Iterator<TGraph, OutEdgeIterator>::Type;
     * @signature template <typename TGraph, typename TSpec> class Iter<TGraph,
     *            GraphIterator<InternalOutEdgeIterator<TSpec> >;
     *
     * @tparam TGraph The graph to iterate the edges of.
     *
     * The first signature is the signature of the corresponding @link
     * ContainerConcept#Iterator graph's Iterator @endlink metafunction call. The
     * second call is the internal definition of the type. You should always get
     * this type using the metafunction call from the first signature.
     *
     * @fn OutEdgeIterator::OutEdgeIterator
     *
     * @brief Constructor
     *
     * @signature Iter::Iter();
     * @signature Iter::Iter(iter);
     * @signature Iter::Iter(graph, v);
     *
     * @param[in] iter Other OutEdgeIterator to copy from.
     * @param[in] graph The @link Graph @endlink to iterate edges of.
     * @param[in] v The descriptor of the vertex to iterate out edges of.
     *
     * @fn OutEdgeIterator#label
     *
     * @brief Returns the label of the out-edge this iterator points to (for
     *        automatons);
     *
     * @signature TAlphabet label(it);
     *
     * @param[in] it The iterator to query.
     *
     * @return TAlphabet The current label (Alphabe is the alphabet of the
     *                   automaton).
     *
     * Only works if the graph type is an @link Automaton @endlink.
     */