Skip to content

败犬日报 2025-03-24

1. 三路运算符 <=> 的一些讨论

推荐阅读:

https://zhuanlan.zhihu.com/p/350867708

https://github.com/xiaoweiChen/CXX20-The-Complete-Guide 第一章


三路运算符解决了什么问题?

定义了 <=>< <= > >= 这 4 个运算符就能用了,写起来简单。


为什么定义了 <=> 还要定义 ==

性能考虑。例如字符串比较,== 只要长度不同就可以直接返回 false,而 <=> 还要区分大于小于。


如果 <=>== 冲突了会怎么办?

不影响,因为 < <= > >=<=> 引出,!=== 引出,两者没有交集,只是行为会很奇怪。

但是使用了 std::sort 之类的标准库函数是未定义行为。

2. 主线程 core 了后,detach 的线程会寄吗

会。线程之间资源是共享的,一个线程 core 了所有资源都会不可控,所以整个进程都得寄。