// P2085, separate definition of defaulted comparisons
// { dg-do compile { target c++20 } }
namespace X {
  struct A {
    int i;
    friend constexpr bool operator==(const A&,const A&);
  };
  inline constexpr bool operator==(const A&,const A&)=default;
  static_assert (A() == A());
}
namespace Y {
  struct A {
    int i;
    // friend bool operator==(const A&,const A&);
  };
  inline bool operator==(const A&,const A&)=default; // { dg-error "not a friend" }
}