我可以使用 g++ 使用三种方式比较 (<=>) 吗?

Can I use three ways comparison (<=>) using g++?

我想尝试使用三种比较运算符 (<=>) 但是...

代码:

#include <compare>

int main(){
  .
  .
  .
}

命令:

g++ -std=c++2a compare.cpp

输出:

compare.cpp:10:10: fatal error: compare: No such file or directory
   10 | #include <compare>
      |          ^~~~~~~~~
compilation terminated.

我找不到任何解决此错误的方法。我正在使用 g++ 9.3.0.

g++ 还不支持 <compare> 吗? 如果有,我如何使用 g++ 修复此错误? 或者,如果没有,请教我另一种使用 <compare> 的方法,无需 g++。

Can I use three ways comparison (<=>) using g++?

是的,这个does work

但请记住,正如评论者所说:

  1. 它必须是足够新的 GCC 版本 - 10.x 至少
  2. 此 header 和宇宙飞船运算符 <=> 是 C++20 语言标准的一部分。所以你必须指定-std=c++20(或早期版本中的-std=c++2a)以确保它们可以使用。