|  | 
| template<typename I1 , typename I2 , typename S1 , typename S2 > requires sentinel_for<S1, I2> && sentinel_for<S2, I1>
 | 
| bool | ranges::operator!= (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) | 
|  | 
| template<typename I1 , typename I2 , typename S1 , typename S2 > requires sized_sentinel_for<I1, I2> && sized_sentinel_for<S1, I2> && sized_sentinel_for<S2, I1>
 | 
| iter_difference_t< I2 > | ranges::operator- (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) | 
|  | 
| template<typename I1 , typename I2 , typename S1 , typename S2 > requires sentinel_for<S1, I2> && sentinel_for<S2, I1> && (!equality_comparable_with<I1, I2>)
 | 
| bool | ranges::operator== (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) | 
|  | 
| template<typename I1 , typename I2 , typename S1 , typename S2 > requires sentinel_for<S1, I2> && sentinel_for<S2, I1> && equality_comparable_with<I1, I2>
 | 
| bool | ranges::operator== (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) | 
|  |