gpt4 book ai didi

C++20 默认等式/不等式

转载 作者:行者123 更新时间:2023-12-03 06:49:24 29 4
gpt4 key购买 nike

C++20 为我们提供了飞船操作符,甚至允许我们 default它,使用默认语义生成所有比较,这将从我们的代码库中删除很多样板,太棒了!
但是平等和不平等呢? C++20 是否也为我们提供了一种方式 default平等与不平等?根据 cppreference.com , 默认飞船只会给我们 < <= > , 和 >= ,但不是 ==!= .鉴于我通常需要更多/更少的平等/不平等方式,这似乎很不幸。那么,有没有办法也(或仅)默认生成 ==!=在 C++20 中?
更新:该页面现在包含对默认 operator== 的描述.似乎我在添加文档前两小时访问了该页面。 :D

最佳答案

Does C++20 also give us a way to default equality and inequality?


是的(但请参阅最后一段)。语法是一样的:
friend bool operator==(const T&, const T&) = default;
friend bool operator!=(const T&, const T&) = default; // not needed if == exists
有序不等式也可以默认:
friend bool operator<=(const T&, const T&) = default;
// ...

defaulting spaceship will only give us < <= >, and >=, but not == and !=


这是不准确的。默认三向比较为我们提供了所有比较因此,在这种情况下不需要上述内容。

关于C++20 默认等式/不等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64594330/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com