読者です 読者をやめる 読者になる 読者になる

if式

C++

関数型に慣れてくると、if文じゃなくてif式がほしくなります。
(条件演算子ではなく、ifが戻り値を返してほしい)


こんな感じで使いたい。

x = if (a < b) a else b;

C++でやるなら、条件演算子をマクロにしてしまうのが簡単かな。

#define if_(Cond) Cond
#define then_     ?
#define else_     :
int a = 1;
int b = 2;

int x = if_(a < b) then_ a else_ b;


追記:
こっちの方がよさそう

#define if_(Cond) (Cond)?
#define else_     :
int a = 1;
int b = 2;

int x = if_(a < b) a else_ b;


ちなみに、ScalaやRubyのifは戻り値を返します。