# Concept SignedIntegerConcept
An integral type with a sign.

Extends | IntegerConcept
All Extended | AssignableConcept, ComparableConcept, CopyConstructibleConcept, DefaultConstructibleConcept, DestructibleConcept, EqualityComparableConcept, IntegerConcept, LessThanComparableConcept
Defined in | <seqan/basic.h>
Signature | `SignedIntegerConcept<T>`

## Detailed Description

Expects an instance of type `T` to represent (possibly negative) integral values and to provide the same operations as `int`. Every type `T` that fulfills the IntegerConcept fulfills either the SignedIntegerConcept or the UnsignedIntegerConcept.

### Examples

    SEQAN_CONCEPT_ASSERT((SignedIntegerConcept<int>));
    //SEQAN_CONCEPT_ASSERT((SignedIntegerConcept<unsigned short>));             // fails to compile

    std::cout << Is<SignedIntegerConcept<char> >::VALUE << std::endl;           // 0
    std::cout << Is<SignedIntegerConcept<int> >::VALUE << std::endl;            // 0
    std::cout << Is<SignedIntegerConcept<unsigned short> >::VALUE << std::endl; // 1
    std::cout << Is<SignedIntegerConcept<double> >::VALUE << std::endl;         // 0

### Valid Expressions

    T a;
    int b;

    a = -1;
    b = a;

    a = a - a;
    a = a + 1;
    a = a - 1;

    a = a / 2;

    static_cast<T>(-1) < static_cast<T>(0);

## Member Function Overview

### Member Functions Inherited From AssignableConcept

- `operator=`

### Member Functions Inherited From ComparableConcept

- `operator>`

### Member Functions Inherited From EqualityComparableConcept

- `operator!=`
- `operator==`

### Member Functions Inherited From LessThanComparableConcept

- `operator<`

## Interface Function Overview

### Interface Functions Inherited From AssignableConcept

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

### Interface Functions Inherited From ComparableConcept

- `operator<=`
- `operator>=`

#### Dox Sources

    /*!
     * @concept SignedIntegerConcept
     *
     * @headerfile <seqan/basic.h>
     *
     * @extends IntegerConcept
     *
     * @brief An integral type with a sign.
     *
     * @signature SignedIntegerConcept<T>
     *
     * Expects an instance of type <tt>T</tt> to represent (possibly negative)
     * integral values and to provide the same operations as <tt>int</tt>. Every
     * type <tt>T</tt> that fulfills the @link IntegerConcept @endlink fulfills
     * either the @link SignedIntegerConcept @endlink or the @link
     * UnsignedIntegerConcept @endlink.
     *
     * @section Examples
     *
     * @code{.cpp}
     * SEQAN_CONCEPT_ASSERT((SignedIntegerConcept<int>));
     * //SEQAN_CONCEPT_ASSERT((SignedIntegerConcept<unsigned short>));             // fails to compile
     *
     * std::cout << Is<SignedIntegerConcept<char> >::VALUE << std::endl;           // 0
     * std::cout << Is<SignedIntegerConcept<int> >::VALUE << std::endl;            // 0
     * std::cout << Is<SignedIntegerConcept<unsigned short> >::VALUE << std::endl; // 1
     * std::cout << Is<SignedIntegerConcept<double> >::VALUE << std::endl;         // 0
     * @endcode
     *
     *
     * @section Valid Expressions
     *
     * @code{.cpp}
     * T a;
     * int b;
     *
     * a = -1;
     * b = a;
     *
     * a = a - a;
     * a = a + 1;
     * a = a - 1;
     *
     * a = a / 2;
     *
     * static_cast<T>(-1) < static_cast<T>(0);
     * @endcode
     */