[過去ログ] 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
539
(4): デフォルトの名無しさん [sage] 2018/04/13(金) 10:38:13 ID:roGFrSR8(1/2) AAS
Win32のBOOL型を返す関数を複数回呼んで、
すべて成功したときのみTRUEを返したいのですが
(途中で失敗しても関数自体はすべて呼んでおく)、

BOOL Test()
{
  BOOL bResult = TRUE;
  bResult &= Api(...);
  bResult &= Api(...);
  bResult &= Api(...);
  return bResult;
}

と書いてとりあえず動くのですが、よく考えたら&=はビット演算だし、
Win32のBOOL関数は成功時にTRUEを返すとは書いていないので、
例えば関数が成功時に2を返すパターンがあったら、
すべて成功しても戻り値はFALSEになるのではと思っています。

この場合、

bResult = Api(...) && bResult;
bResult = Api(...) && bResult;
bResult = Api(...) && bResult;

みたいな書き方をするしかないのでしょうか。
547
(3): 539 [sage] 2018/04/13(金) 15:24:49 ID:roGFrSR8(2/2) AAS
みなさんご意見ありがとうございます。
例を簡略化しすぎてしまいましたが、処理は状況によって分かれるため、
常に同じ関数が3回というわけではありませんでした。
失礼しました。

bResult = Api(...) && bResult;

の書き方自体は、そこまで汚いわけではないのですね。
同じような書き方をしているソースも、検索してみたら出てきました。

個人的には、

bResult &&= Api(...);

のような記述ができるとありがたかったです。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s