This started as an attempt to fix a GCC 11 warning of misplaced parentheses.
I then noticed that trying to fix the parentheses warning actually triggered
errors in the tests, showing that we were incorrectly assuming that the
implementation of ranges::advance was using operator+= or operator-=.
This commit fixes that issue and makes the tests easier to follow by
localizing the assertions it makes. It also doesn't try to pretend that
we can use ranges::next with a straight output_iterator, which isn't
the case in reality.
Simply:
int range[4] = {}; assert(base(std::ranges::next(It(range))) == range+1); assert(base(std::ranges::next(It(range+3))) == range+4);