The operator() for constructing past the end iterator was forwarding the int value to the iterator type.