Just as reminder for me (
/** */
template<class _Filter>
filter_iterator<_Filter, const_iterator> begin() const
{ return make_filter_iterator( _Filter(), begin(), end() ); }
/** */
template<class _Filter>
filter_iterator<_Filter, const_iterator> begin( _Filter f ) const
{ return make_filter_iterator( f, begin(), end() ); }
/** */
template<class _Filter>
filter_iterator<_Filter, const_iterator> end() const
{ return make_filter_iterator( _Filter(), end(), end() ); }
/** */
template<class _Filter>
filter_iterator<_Filter, const_iterator> end( _Filter f ) const
{ return make_filter_iterator( f, end(), end() ); }
)