Boost Advent Calndar 2011 の4日目です。 ネタがないので既知のことかもしれないですが、いろいろテクニックが使われてるBoost.Foreachの実装について紐解いてみたいと思います。 Boost.Foreachとは C++11でrange-based forという構文が追加されたのはみなさんご存知かもしれないですが、これと同じような構文でrangeを舐めるということをC++03の範囲で行なおうというのがBoost.Foreachです。 rangeがどうとかrange-based forがどうとかってのは多分C++11 Advent Calendar 2011で紹介されると期待しているので省きます。 boost/foreach.hpp をインクルードするとBOOST_FOREACHマクロが使えるようになります。 このgrammarは BOOST_FOREACH( f