getBamTypeChar - SeqAn API Documentation

# fn() getBamTypeChar
Return char identifying the type of the argument type.

Defined in | <seqan/bam_io.h>
Signature | `char getBamTypeChar<T>(); BamTypeChar<T>::VALUE`

## Template Parameters

`T` | The type to query for its type char.

## Detailed Description

### Remarks

Note that this function is defined for the `int16_t`, `uint16_t` etc. but not for the types `short`, `int` etc. An exception are 8-bit characters/char, where it is defined for `int8_t`, `uint8_t`, and `char` unless `char` is equal to one of the other two types. This is important when used in setTagValue etc. since BAM gives type chars for printable characters, signed 8-bit numbers and unsigned 8-bit numbers.

If `int8_t` and `uint8_t` are not identical to `char`, we can make this decision from the type, otherwise we cannot and we will give the integer types a higher precedence.

In your programs, this should not make any difference, only the written SAM/BAM will differ.

## Data Races

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

## See Also

- BamTagsDict
- getBamTypeSize

#### Dox Sources

    /*!
     * @fn getBamTypeChar
     *
     * @headerfile <seqan/bam_io.h>
     *
     * @brief Return char identifying the type of the argument type.
     *
     * @signature char getBamTypeChar<T>();
     * @signature BamTypeChar<T>::VALUE
     *
     * @tparam T The type to query for its type char.
     *
     * @section Remarks
     *
     * Note that this function is defined for the <tt>int16_t</tt>,
     * <tt>uint16_t</tt> etc. but not for the types <tt>short</tt>, <tt>int</tt>
     * etc. An exception are 8-bit characters/char, where it is defined for
     * <tt>int8_t</tt>, <tt>uint8_t</tt>, and <tt>char</tt> unless <tt>char</tt> is
     * equal to one of the other two types. This is important when used in @link
     * BamTagsDict#setTagValue @endlink etc. since BAM gives type chars for
     * printable characters, signed 8-bit numbers and unsigned 8-bit numbers.
     *
     * If <tt>int8_t</tt> and <tt>uint8_t</tt> are not identical to <tt>char</tt>,
     * we can make this decision from the type, otherwise we cannot and we will give
     * the integer types a higher precedence.
     *
     * In your programs, this should not make any difference, only the written
     * SAM/BAM will differ.
     *
     * @see BamTagsDict
     * @see getBamTypeSize
     */