# Equality Comparable

Category: utilities | Component type: concept

### Description

A type is EqualityComparable if objects of that type can be compared for equality using `operator==`, and if `operator==` is an equivalence relation.

### Refinement of

### Associated types

### Notation

`X` | A type that is a model of EqualityComparable
`x`, `y`, `z` | Object of type `X`

### Definitions

### Valid expressions

Name | Expression | Type requirements | Return type
--- | --- | --- | ---
Equality | `x == y` |  | Convertible to `bool`
Inequality | `x != y` |  | Convertible to `bool`

### Expression semantics

Name | Expression | Precondition | Semantics | Postcondition
--- | --- | --- | --- | ---
Equality | `x == y` | `x` and `y` are in the domain of `==` |  |
Inequality | `x != y` | `x` and `y` are in the domain of `==` | Equivalent to `!(x == y)` |

### Complexity guarantees

### Invariants

Identity | `&x == &y` implies `x` == `y`
Reflexivity | `x == x`
Symmetry | `x == y` implies `y == x`
Transitivity | `x == y` and `y == z` implies `x == z`

### Models

- int
- `vector<int>`

### Notes

### See also

LessThanComparable.

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation