クラスは bool への明示的な変換を定義し、そのインスタンス 't' を条件文で直接使用できるようにします。ただし、この明示的な変換では、キャストなしで 't' を bool として使用できる場所は他にありますか?
コンテキスト変換シナリオ
C 標準では 4 つが指定されています。コンテキストに応じて値を bool に変換できる主なシナリオ:
ステートメント:
if、while、for、do-while ステートメント
<code class="cpp">if (t) /* statement */;</code>
式:
否定 (!)、論理 AND (&&)、論理 OR (||) 、三項演算子 (?)
<code class="cpp">!t t && t2</code>
コンパイル時テスト:
static_assert、no例外、明示的、 if constexpr (constexpr 変換演算子が必要)
<code class="cpp">static_assert(t); noexcept(t)</code>
アルゴリズムと概念:
NullablePointer、述語、またはコンパレータSTL アルゴリズムの引数
<code class="cpp">NullablePointer T std::remove_if(first, last, [&](auto){ return t; });</code>
追加の注意:
以上が「if」ステートメントを超えて: 明示的な「bool」変換を伴う型をキャストせずに使用できる場所は他にありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。