|
ビットごとの OR です。
|=
は、関数の1つで返されたものを で取得しbitwise OR
、result
に格納すると言いresult
ます。これは、次のようなことを行うのと同じです:
result = result | callFunctionOne(sig);
あなたのコード例を取る:
bool result;
result |= callFunctionOne(sig);
result |= callFunctionTwo(sig);
result |= callFunctionThree(sig);
result |= callFunctionFour(sig);
そしてあなたの論理
パラメータ sig が関数で処理される場合は「true」を返し、そうでない場合は「false」を返します。
つまり、結果を定義しない場合、デフォルトでFALSEになります。
result = false;
callFunctionOne
TRUE を返します
result = result | callFunctionOne;
result
TRUEに等しい。
result = false;
callFunctionOne
FALSE を返します
result = result | callFunctionOne
結果は FALSE です。
これは のように見えるかもしれませんが、本質的に数字またはであるboolean OR
を使用しています。bitwise OR
OR'ing
1
0
1
が TRUE に等しく0
、FALSE に等しいとすると、真理値表を思い出してください。
p q p ∨ q
T T T
T F T
F T T
F F F
ここで、各関数を次々と呼び出すため、前の関数の結果が最終的に からの最終結果を決定することを意味しcallFunctionFour
ます。その中で、4 分の 3 の確率でTRUEになり、 4 分の 1 の確率でFALSEになります。