そんな便利なものがあったのかorz
さっそく使ってみようと思ったら、使ってるバージョンが 1.33.1 で入ってなかったorz
過去に同じようなものを作ろうとして挫折したんだけど、やる人がやればやっぱりできるものなんだなぁ‥‥。
↓挫折した時の残骸
template<typename T, size_t N> size_t lengthof(T (&)[N]) {return N;} #define foreach_iterator(T, it, list) \ for (T it = (list).begin(); it != (list).end(); ++it) #define foreach_pointer(T, value, list, size) \ for (T value = (list); value != (list)+(size); ++value) #define foreach(T, value, list) \ foreach_pointer(T, value, list, lengthof(list))
boostのみたいに、begin と end をマクロかテンプレート関数にして統一化できないのか?という発想までは行ったんだけど、結局、挫折して分けたという‥‥。しかも、参照返さず、イテレータとポインタのまんまだし。すごく‥‥絶望しました‥‥orz
配列(というかポインタ)はなんだかんだで、数が指定したくなるよね(負け惜しみ)。