# Concept AlphabetWithUnknownValueConcept
An alphabet which includes a specific "unknown" 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 unknownValue<T>();`
  Return the "unknown" value from an alphabet.
- `T gapValueImpl(valuePointerTag)`
  Implements unknownValue.

### Interface Functions Inherited From AssignableConcept

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

## Interface Metafunction Overview

### Interface Metafunctions Inherited From AlphabetConcept

- `BitsPerValue`

## Interface Functions Detail

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

Return the "unknown" value from an alphabet.

#### Template Parameters

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

#### Returns

`TReturn` | The "unknown" value.

#### Data Races

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

#### See Also

- unknownValueImpl

### `T gapValueImpl(valuePointerTag)`

Implements unknownValue.

#### 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

`TReturn` | A "unknown" character.

This function implements unknownValue. 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

- unknownValue

#### Dox Sources

    /*!
     * @concept AlphabetWithUnknownValueConcept
     *
     * @headerfile <seqan/basic.h>
     *
     * @extends AlphabetConcept
     *
     * @brief An alphabet which includes a specific "unknown" character.
     *
     * @fn AlphabetWithUnknownValueConcept#unknownValue
     *
     * @brief Return the "unknown" value from an alphabet.
     *
     * @signature T unknownValue<T>();
     *
     * @tparam T The alphabet type to query the unknown value from.
     *
     * @return TReturn The "unknown" value.
     *
     * @see AlphabetWithUnknownValueConcept#unknownValueImpl
     *
     * @fn AlphabetWithUnknownValueConcept#unknownValueImpl
     *
     * @brief Implements unknownValue.
     *
     * @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 TReturn A "unknown" character.
     *
     * This function implements unknownValue. It is recommended to use gapValue
     * rather than <tt>gapValueImpl</tt>.
     *
     * @see AlphabetWithUnknownValueConcept#unknownValue
     */