// { dg-do compile { target c++26 } } #include struct Incomplete; bool operator==(const Incomplete&, const Incomplete&); std::strong_ordering operator<=>(const Incomplete&, const Incomplete&); template<> struct std::hash { static std::size_t operator()(const Incomplete& c); }; std::indirect* test_move(std::indirect& i1, std::indirect& i2) { i2.swap(i2); return new std::indirect(std::move(i1)); } void test_relops(std::indirect const& i1, Incomplete const& o) { void(i1 == i1); void(i1 < i1); void(i1 >= i1); void(i1 != o); void(i1 < o); } void test_hash(std::indirect const& i1) { std::hash> h; h(i1); }