Формулировка спецификации не требует, чтобы pos
был меньше длины строки.Если pos
больше длины строки, то первая часть условия (1) не может быть выполнена, потому что если pos <= xpos
, то xpos + str.size() <= size()
никогда не может быть истинным.В результате, согласно предложению (2), функция вернет npos
.Следовательно, если индекс выходит за пределы диапазона, поведение функции по-прежнему совершенно точно определено.
Надеюсь, это поможет!