template <typename D,typename Iterator,typename SFn> inline bool operator<=(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { return p1.step()>0 ? p1.base()<=p2.base() : p1.base()>=p2.base(); }
template <typename D,typename IT,typename S_FN> inline bool operator>=(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2) { return p1.step()>0 ? p1.base()>=p2.base() : p1.base()<=p2.base(); }