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

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

本文关键字:可以使 lt gt 比较 g++ 三种 我可以      更新时间:2023-10-16

我想尝试使用三种方式的比较运算符(<=>(,但是。。。

代码:

#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++。

我可以使用g++使用三种方法进行比较(<=>(吗?

是的,这确实有效。

但请记住,正如评论人士所指出的:

  1. 它必须至少是GCC-10.x的最新版本
  2. 这个头和宇宙飞船操作员<=>是C++20语言标准的一部分。因此,您必须指定-std=c++20(或早期版本中的-std=c++2a(以确保它们可以使用