我可以使用 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。
但请记住,正如评论者所说:
- 它必须是足够新的 GCC 版本 - 10.x 至少
- 此 header 和宇宙飞船运算符
<=>
是 C++20 语言标准的一部分。所以你必须指定-std=c++20
(或早期版本中的-std=c++2a
)以确保它们可以使用。
我想尝试使用三种比较运算符 (<=>
) 但是...
代码:
#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。
但请记住,正如评论者所说:
- 它必须是足够新的 GCC 版本 - 10.x 至少
- 此 header 和宇宙飞船运算符
<=>
是 C++20 语言标准的一部分。所以你必须指定-std=c++20
(或早期版本中的-std=c++2a
)以确保它们可以使用。