簡體   English   中英

為什么std :: bitset :: reference :: operator~?

[英]Why std::bitset::reference::operator~?

我正在閱讀std::bitset文檔 ,我想知道為什么std::bitset::reference顯式定義operator~因為我沒有看到任何性能或設計原因。 沒有它,我認為它同樣有效:

bool b = ~mybitset[i];

因為引用將轉換為bool,將在其上應用~運算符。

對此設計決定有何解釋?

bool b = true;
b = ~b;

此操作后b的值為true

這是因為~bool提升為值為1的int ,然后對結果執行bitwise-not,結果為-2,然后將其轉換回bool ,這是真的。

所以它必須提供一個操作員,以便結果是你所期望的。

由於積分促銷, ~true ~1 ,當轉換回bool時,這肯定是非零的,因此不是false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM