Determines whether the call to set_value is legal assuming the iterator is valid. The value must not change in runtime hence the user of iterator may cache it.