[cppll:0093] <tips> inline if

Subject:
[cppll:0093] <tips> inline if
From:
Wraith the Trickster <wraith@...>
Date:
Thu, 13 Dec 2001 12:53:13 +0900
X-Mailer:
Microsoft Outlook Express 5.50.4807.1700
Message-Id:
<002b01c18389$ba16d020$3eacc63d@mist>
道化師です。

今日はインラインでの分岐について。C/C++ でのインラインでの分岐
といば...

 x? y: z;

....をまっさきに思い浮かべる方も多いかと思いますが、

 &&
 ||

....を利用する手もあり...

 if (条件) {
   true 時の処理;
 } else {
   false 時の処理;
 }

....は...

 (条件)? (true 時の処理): (false 時の処理);

....と記述する以外にも...

 (条件) && (true 時の処理, true) || (false 時の処理);

....とも記述できます。また実に皮肉なことですがこの手法を使えば
通常の if では煩雑になってしまう処理もスマートに記述することが
可能になったりします。特に...

 HOGE_ERROR != hoge.step1() &&
 HOGE_ERROR != hoge.step2() &&
 HOGE_ERROR != hoge.step3();

....のようなエラーチェックを厳重に行いながら処理を行うときなど
この手法を使うとより簡潔に記述できたりします。

# この手法を使うとマクロを組んだりすときも便利かと。

□■□■                  Wraith the Trickster                  □■□■
■□■□ 〜I'll go with heaven's advantage and fool's wisdom.〜 ■□■□

スレッド

Navigation

検索

[検索ヘルプ]

Maintener: Tietew <www.tietew.jp>
Powered by Ruby on Rails, Mongrel, PostgreSQL, and Hyper Estraier.
click here