Vin*_*ent 3 c++ standards std bitset
我正在阅读文档,std::bitset我想知道为什么std::bitset::reference明确定义,operator~因为我没有看到任何性能或设计原因.没有它,我认为它同样有效:
bool b = ~mybitset[i];
Run Code Online (Sandbox Code Playgroud)
因为引用将转换为bool,~操作符将应用于bool .
对此设计决定有何解释?
bool b = true;
b = ~b;
Run Code Online (Sandbox Code Playgroud)
b此操作后的值是true!
这是因为~促进了bool到int的值1,然后执行按位不上的结果,这解析为-2,然后投射该回bool这是真实的.
所以它必须提供一个操作员,以便结果是你所期望的.