Hi     This is another attempt to make adapter iterator types operators undefined when underlying iterator type doesn't support it. For the move_iterator it is rather easy and even already done for the operator- so I just generalize it to comparison operators. It doesn't cover all operators of course but it is still better than current situation.     * include/bits/stl_iterator.h (move_iterator<>::operator++(int)):     Simplify implementation using underlying iterator type same     post-increment operator.     (move_iterator<>::operator--(int)):     Simplify implementation using underlying iterator type same     post-decrement operator.     (move_iterator<>::operator<(const move_iterator<>&,     const move_iterator<>&): Define return type as return type of the same     expression on underlying iterator type.     (move_iterator<>::operator<=(const move_iterator<>&,     const move_iterator<>&): Likewise.     (move_iterator<>::operator>(const move_iterator<>&,     const move_iterator<>&): Likewise.     (move_iterator<>::operator>=(const move_iterator<>&,     const move_iterator<>&): Likewise.     * testsuite/24_iterators/move_iterator/operator_neg.cc: New.     Ok to commit or should the Standard be amended first ? François