# ConceptEqualityComparableConceptA type that can be equality compared.

All Subcl's BidirectionalIteratorConcept, ComparableConcept, FiniteOrderedAlphabetConcept, ForwardIteratorConcept, InputIteratorConcept, IntegerConcept, MutableBidirectionalIteratorConcept, MutableForwardIteratorConcept, MutableRandomAccessIteratorConcept, MutableRootedIteratorConcept, MutableRootedRandomAccessIteratorConcept, OrderedAlphabetConcept, RandomAccessIteratorConcept, RootedIteratorConcept, RootedRandomAccessIteratorConcept, SignedIntegerConcept, UnsignedIntegerConcept ```EqualityComparable ```

## Detailed Description

### Remarks

Expects instances of type T to be comparable via operator== and operator!=. Comparison operators must return boolean convertible values. operator== must be an equivalence relation.

### Examples

Valid expressions:

```a == b;
a != b;```

Invariants:

• (a == a) (reflexivity)
• (a == b) => (b == a) (symmetry)
• (a == b) &&(b == c) => (a == c) (transitivity)

## Member Function Overview

• `bool T::operator!=(T const & other) const;`
Operator to compare for inequality.
• `bool T::operator==(T const & other) const;`
Operator to compare for equality.

## Member Functions Detail

### `bool T::operator!=(T const & other) const;`

Operator to compare for inequality.

The inequality operator can be implemented as a member or as a global function.

Usually, the inequality operator is implemented as !operator==(a, b).

### `bool T::operator==(T const & other) const;`

Operator to compare for equality.

The equality operator can be implemented as a member or as a global function.

Usually, there is an implementation of operator==() for custom data types and then operator!=() uses operator==().