>>172
自分で停止するバージョンのfor_each書けば?
template <class IT, class FN>
void my_for_each(IT first, IT last, FN func)
{
  for(; first != last && func(*first); ++first)
    ;
}
みたいな感じで