# fn() arrayCopyForward
Copies a range of objects into another range of objects starting from the first element.

Defined in | <seqan/basic.h>
Signature | `void arrayCopyForward(sourceBegin, sourceEnd, target);`

## Parameters

`sourceEnd` | Iterator behind the last element of the source array. `sourceEnd` must have the same type as `sourceBegin`.
`sourceBegin` | Iterator to the first element of the source array.
`target` | Iterator to the first element of the target array. The target capacity should be at least as long as the source range.

## Detailed Description

Be careful if source and target range overlap, because in this case some source elements could be accidently overwritten before they are copied.

If there is no need for the source elements to persist, consider to use arrayMoveForward instead to improve performance.

## Data Races

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

#### Dox Sources

    /*!
     * @fn arrayCopyForward
     *
     * @headerfile <seqan/basic.h>
     *
     * @brief Copies a range of objects into another range of objects starting from
     *        the first element.
     *
     * @signature void arrayCopyForward(sourceBegin, sourceEnd, target);
     *
     * @param[in] sourceEnd Iterator behind the last element of the source array.
     *                      <tt>sourceEnd</tt> must have the same type as
     *                      <tt>sourceBegin</tt>.
     * @param[in] sourceBegin Iterator to the first element of the source array.
     * @param[in] target Iterator to the first element of the target array. The
     *                   target capacity should be at least as long as the source
     *                   range.
     *
     * Be careful if source and target range overlap, because in this case some
     * source elements could be accidently overwritten before they are copied.
     *
     * If there is no need for the source elements to persist, consider to use
     * arrayMoveForward instead to improve performance.
     */