Concept IntegerConcept
An integral type.

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

Detailed Description

Expects an instance of type T to be of integral value and to provide the same operations as int. The integer concept imposes no restrictions on an available sign. Every type T that fulfills the IntegerConcept fulfills either the SignedIntegerConcept or the UnsignedIntegerConcept.

Examples

SEQAN_CONCEPT_ASSERT((IntegerConcept<int>));
SEQAN_CONCEPT_ASSERT((IntegerConcept<char>));
//SEQAN_CONCEPT_ASSERT((IntegerConcept<double>));                       // fails to compile
 
std::cout << Is<IntegerConcept<char> >::VALUE << std::endl;             // 1
std::cout << Is<IntegerConcept<int> >::VALUE << std::endl;              // 1
std::cout << Is<IntegerConcept<unsigned short> >::VALUE << std::endl;   // 1
std::cout << Is<IntegerConcept<double> >::VALUE << std::endl;           // 0

Valid Expressions

T a, b;
int c;
 
a = 0u;
b = 1u;
c = a;
 
b = a + 1u;
b = a + a;
b += a;
b += 1u;
b = a++;
b = ++a;
 
b = a - a;
b = a - 1u;
b -= a;
b -= 1u;
b = a--;
b = --a;
 
b = a * a;
b = a * 1u;
b *= a;
b *= 1u;
 
b = a / a;
b = a / 1u;
b /= a;
b /= 1u;
 
b = a << a;
b = a << 1;
b <<= a;
b <<= 1;
 
b = a >> a;
b = a >> 1;
b >>= a;
b >>= 1;

Member Function Overview

Member Functions Inherited From AssignableConcept

Member Functions Inherited From ComparableConcept

Member Functions Inherited From EqualityComparableConcept

Member Functions Inherited From LessThanComparableConcept

Interface Function Overview

Interface Functions Inherited From AssignableConcept

Interface Functions Inherited From ComparableConcept