sidebarみんな忘れてしまうんだ特にテーマはありません。みんな検索から個別ページに飛んでくるんだから。)Blogview2017年1月18日水曜日c++で、scala風ifをやりたいscalaをしばらくやっていると、c++を書いた時にifが値を返さないのでトサカにくることがある。三項演算子とラムダ式を使えばもちろんできるんだけど、超絶汚くなる。マクロにしたら案外すっきりしたので、記事アップ。returnこんな感じ。endl;そこそこ見やすい。ENDIFが必要なのは勘弁してね。c++は、中括弧の最後の値が中括弧全体の値にならないので、IFの戻り値にしたい値にIFRESを付けてね。IFRESは、ただのreturnなんだけど、直にreturnって書くと関数全体のreturnに見えてしまい、わけわからなくなるので、このキーワードを使います。逆に言うと、IFやELSEの中から関数の外へ直接return出来ないので、あしからず。returnしたい人は、別にifの戻り値が欲しいわけじゃないので普通のifを使ってください。あと、ENDIFマクロの最後にセミコロンをあえて含めずに、使うときにセミコロンをつけるようにしたのは、コンストラクタの初期化子でも使いやすくしたかったから。IFとかELSEの後がブロックでなくてもOK。)Authorかなりゆるく生きてます。