2009-08-12 17 views
1

BOOST_FOREACHは本当にすっきりしていますが、Cのマクロスタイルの書き方は多少面倒です。 オールキャップのスペルを避けるためのトリックはありますか?BOOST_FOREACH:オールキャップのスペルを避けるためのトリックはありますか?

+6

を選択しました。 BOOST_FOREACHはMACROであるため、すべて大文字で入力してください。 MARCOは危険で十分ですが、そこには人々が認識できるようにCAPを作るのがやや一般的です。 あなたが boost_foreachのようなものを書くように誘惑されることはありません。この方法では、(int型、do_crazy_stuff_to_get_an_array()){} 崖: それは大会のために大文字です。 –

+1

ドキュメントから: "BOOST_FOREACHはマクロですが、それは非常にうまく動作します。それは一度だけ引数を評価し、厄介な驚きにつながりません" –

答えて

13

、もう少しグーグルや読書は右Boost foreach documentationに答えを明らかにした:

人々は名前 BOOST_FOREACH不満がBOOST_FOREACHきれいを作ります。長過ぎます。すべてのキャップ は見苦しくなることがあります。 が真であるかもしれませんが、BOOST_FOREACHはブースト命名規則に従うだけで です。 それはあなたが それでつかまっていることを意味しません。あなたは 異なる識別子(foreachの、 おそらく)を使用したい場合は、単に行うことができます:あなたが選ぶ 識別子が発生しないことが確実な場合

#define foreach BOOST_FOREACH
#define reverse_foreach BOOST_REVERSE_FOREACH

のみこれを行います 名前が競合しています。

およびそれと私はちょうど私が、これは悪いアイデアだと思います

// cf http://www.boost.org/doc/libs/1_39_0/doc/html/foreach.html 
// -- Making BOOST_FOREACH Prettier 
#define boostForeach BOOST_FOREACH 
29

おそらくこれは?

実際
#define foreach BOOST_FOREACH 
+0

うん、私はそれも見つけました。ありがとう、しかし! –

関連する問題