# Concept AlphabetWithGapsConcept
An alphabet that includes a specific gap character.

Extends | AlphabetConcept
All Extended | AlphabetConcept, AssignableConcept, CopyConstructibleConcept, DefaultConstructibleConcept
Defined in | <seqan/basic.h>
Signature | ``

## Member Function Overview

### Member Functions Inherited From AssignableConcept

- `operator=`

## Interface Function Overview

- `T gapValue<T>();`
  Return the "gap" value from an alphabet.
- `T gapValueImpl(valuePointerTag);`
  Implements gapValue.

### Interface Functions Inherited From AssignableConcept

- `assign`
- `move`
- `set`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From AlphabetConcept

- `BitsPerValue`

## Interface Functions Detail

### `T gapValue<T>();`

Return the "gap" value from an alphabet.

#### Template Parameters

`T` | The alphabet type to query the gap value from.

#### Returns

`T` | The gap character.

The function is implemented in gapValueImpl. Do not specialize `gapValue`, specialize link gapValueImpl instead!

#### Data Races

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

#### See Also

- gapValueImpl

### `T gapValueImpl(valuePointerTag);`

Implements gapValue.

#### Parameters

`valuePointerTag` | A pointer that is used as a tag to specify the value type. The pointer needs not to point to a valid object, so it is possible to use a null pointer here.

#### Returns

`T` | A gap character.

This function implements gapValue. It is recommended to use gapValue rather than `gapValueImpl`.

#### Data Races

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

#### See Also

- gapValue

#### Dox Sources

    /*!
     * @concept AlphabetWithGapsConcept
     *
     * @headerfile <seqan/basic.h>
     *
     * @extends AlphabetConcept
     *
     * @brief An alphabet that includes a specific gap character.
     *
     * @fn AlphabetWithGapsConcept#gapValueImpl
     *
     * @brief Implements gapValue.
     *
     * @signature T gapValueImpl(valuePointerTag);
     *
     * @param[in] valuePointerTag A pointer that is used as a tag to specify the
     *                            value type. The pointer needs not to point to a
     *                            valid object, so it is possible to use a null
     *                            pointer here.
     *
     * @return T A gap character.
     *
     * This function implements gapValue. It is recommended to use gapValue rather
     * than <tt>gapValueImpl</tt>.
     *
     * @see AlphabetWithGapsConcept#gapValue
     *
     * @fn AlphabetWithGapsConcept#gapValue
     *
     * @brief Return the "gap" value from an alphabet.
     *
     * @signature T gapValue<T>();
     *
     * @tparam T The alphabet type to query the gap value from.
     *
     * @return T The gap character.
     *
     * The function is implemented in gapValueImpl. Do not specialize
     * <tt>gapValue</tt>, specialize link gapValueImpl instead!
     *
     * @see AlphabetWithGapsConcept#gapValueImpl
     */