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

Reply via email to