https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111316
Bug ID: 111316 Summary: std::vector's operator < does not work with recursive data type Product: gcc Version: 13.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: xgao at nvidia dot com Target Milestone: --- Created attachment 55847 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55847&action=edit minimum repro The attached minimal repro does not work on g++ on C++20, but it works with g++ on C++17 and clang++ on both C++17 and C++20. See the code for detail: Error message: /usr/include/c++/13.2.1/compare:1216:18: error: satisfaction of atomic constraint ‘requires{{__t < __u} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];{__u < __t} -> decltype(auto) [requires std::__detail::__boolean_testable<<placeholder>, >];} [with _Tp = _Tp; _Up = _Up]’ depends on itself