2009-08-12 70 views
1

BOOST_FOREACH真的很整齊,但C宏的寫作風格有點令人厭惡。 避免全部大寫拼寫有一個竅門嗎?BOOST_FOREACH:是否有一種方法可以避免全部大寫拼寫?

+6

我認爲這是一個壞主意。 BOOST_FOREACH是全部大寫,因爲它是一個MACRO。 MARCOs已經足夠危險了,在那裏做一些常規的CAPS可以讓人們認出它們。 這樣,你會不動心寫的東西像 BOOST_FOREACH(INT一個,do_crazy_stuff_to_get_an_array()){} 懸崖: 它是大寫的約定。 – 2009-08-13 02:19:36

+1

從文檔:「雖然BOOST_FOREACH是一個宏,它是一個非常好的表現,它只是評估它的參數一次,導致沒有討厭的驚喜」 – 2011-11-11 10:09:47

回答

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

是的,我也發現它。不過謝謝! – 2009-08-12 20:33:03

相關問題