Assuming OP is referring to std::next():
N can be negative, as long as the iterator (the first argument) meets the requirements of BidirectionalIterator. Pointers satisfy this requirement.
Note: every BidirectionalIterator is a ForwardIterator; the iterator passed to std::next() is only required to be a ForwardIterator.
You should use std::prev() if you know N will be negative.