// { dg-do compile { target c++11 } }
struct iterator;
struct const_iterator {
  const_iterator(const iterator&);
  bool operator==(const const_iterator &ci) const = delete;
};
struct iterator {
  bool operator==(const const_iterator &ci) const {
    return ci == *this;		// { dg-error "deleted" "" { target c++17_down } }
  }				// { dg-warning "reversed" "" { target c++20 } .-1 }
};