gpt4 book ai didi

c++ - 为什么是 std::bitset::reference::operator~?

转载 作者:太空狗 更新时间:2023-10-29 19:52:01 24 4
gpt4 key购买 nike

我正在阅读 documentation std::bitset 我想知道为什么 std::bitset::reference 显式定义 operator~ 因为我没有看到任何性能或设计原因。没有它,我认为它会同样有效:

bool b = ~mybitset[i];

因为引用将被转换为 bool 值,~ 运算符将被应用。

对这个设计决定有什么解释吗?

最佳答案

bool b = true;
b = ~b;

此操作后b的值为true!

这是因为 ~bool 提升为值为 1 的 int,然后对结果执行按位非运算,解析为-2,然后将其转换回为 true 的 bool

因此它必须提供一个运算符,以便结果符合您的预期。

关于c++ - 为什么是 std::bitset::reference::operator~?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708175/

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