首頁 > 後端開發 > C++ > 主體

除了「if」語句之外:還有哪些地方可以在不進行強制轉換的情況下使用具有明確「bool」轉換的類型?

Linda Hamilton
發布: 2024-10-30 04:33:02
原創
998 人瀏覽過

Beyond `if` Statements: Where Else Can a Type with an Explicit `bool` Conversion Be Used Without Casting?

允許在不進行強制轉換的情況下上下文轉換為bool

您的類別定義了到bool 的明確轉換,使您能夠在條件語句中直接使用其實例“t”。然而,這種明確轉換提出了一個問題:「t」在哪裡可以在不進行強制轉換的情況下用作 bool?

上下文轉換場景

C 標準指定了四個值可以根據上下文轉換為bool 的主要場景:

語句:

  • if、while、for、do-while 語句

    <code class="cpp">if (t)
      /* statement */;</code>
    登入後複製

表達式>

    否定(!)、邏輯與(&&)、邏輯或(||) 、三元運算子(?)
  • <code class="cpp">!t
    t && t2</code>
    登入後複製
編譯時測試:

    static_assert、noexcept、顯式、 if constexpr (需要constexpr 轉換運算子)
  • <code class="cpp">static_assert(t);
    noexcept(t)</code>
    登入後複製

  • <code class="cpp">NullablePointer T
    std::remove_if(first, last, [&](auto){ return t; });</code>
    登入後複製

演算法與概念:NullablePointer、謂詞或比較器STL 演算法中的參數附加說明:不允許從0 和1 以外的整數進行縮小轉換編譯時測試(C 26 及以上)。 混合 const 和非常量轉換運算子可能會導致混亂。

以上是除了「if」語句之外:還有哪些地方可以在不進行強制轉換的情況下使用具有明確「bool」轉換的類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!