別の質問の回答として見つけたスニペットの例をテストしています
ただし、コンパイラはこの「演算子 && は long 型および bool 型のオペランドには適用できません」と吐き出しています。なぜこれを行うのですか?コードを読むと、「マスクとパーミッションが 0 より大きい場合は、成功の bool を返す」と表示されます。
私はこれを間違って読んでいますか?
(また、誰もそれを悪い例として挙げていないので、うまくいくと思っていました。私はコピー&ペーストコーダーではありません)
bool CheckMask( long Mask, long TestPermission ) {
return Mask && TestPermission > 0;
}
long mask = 4611686844973976575;
const long MASK_ViewListItems = 0x0000000000000001;
bool HasPermission_ViewListItems = CheckMask(mask, MASK_ViewListItems);
// HasPermission_ViewListItems is true
const long MASK_UseClientIntegration = 0x0000001000000000;
bool HasPermission_UseClientIntegration = CheckMask(mask, MASK_UseClientIntegration);
// HasPermission_UseClientIntegration is false
StackOverflow には非常に多くの同様の質問があり、それらのほとんどをクリックして確認しました。入力すると、右側に大きなリストが表示されます。私の状況には何も当てはまりませんでした。少なくとも、回答と私の問題との関係を確認できました。