Похоже, что libc ++ (или любая из стандартных библиотек) еще полностью не реализовали добавления в библиотеку операторов космического корабля.
См. здесь для libc ++ и здесь для скомпилированной таблицы на cppreference.com. Соответствующим документом, добавляющим operator<=>
к std::forward_list
, является P1614.
Если вы посмотрите исходный код libc ++ для std::forward_list
здесь , вы увидите, что здесь нет упоминания operator<=>
все же и другие вторичные операторы сравнения по-прежнему определены безоговорочно (что не должно быть в случае C ++ 20).
std::forward_list<int>{} < std::forward_list<int>{};
компилируется, поскольку использует operator<
, а не operator<=>
. Если вы попробуете std::forward_list<int>{} <=> std::forward_list<int>{}
напрямую, это также приведет к сбою (в текущем состоянии libc ++).