[陶大妈醒目][c++11] 类似泛型 for_each 算法的 variadic template 实现
经常遇到多个类似算法,但是参数数量不一样的,我都是直接 overload 掉了
比如 for_each
template<typename II1, typename F> F for_each( II1 _ii1, II1 ii1_, F f ) { while ( _ii1 != ii1_ ) { f( *_ii1++ ); } return f; } template<typename II1, typename II2, typename F> F for_each( II1 _ii1, II1 ii1_, II2 _ii2, F f ) { while ( _ii1 != ii1_ ) { f( *_ii1++, *_ii2++ ); } return f; } template<typename II1, typename II2, typename II3, typename F> F for_each( II1 _ii1, II1 ii1_, II2 _ii2, II3 _ii3, F f ) { while ( _ii1 != ii1_ ) { f( *_ii1++, *_ii2++, *_ii3++ ); } return f; } template<typename II1, typename II2, typename II3, typename II4, typename F> F for_each( II1 _ii1, II1 ii1_, II2 _ii2, II3 _ii3, II4 _ii4, F f ) { while ( _ii1 != ii1_ ) { f( *_ii1++, *_ii2++, *_ii3++, *_ii4++ ); } return f; }template<typename II1, typename... IIN, typename F> F for_each( II1 _ii1, II1 ii1_, IIN... _iin, F f );