Это перегрузка (4) здесь
В разделе "Исключения" перегрузки 2,3,5,6 (которые имеют параметры pos1 и/или pos2) названы как бросающие std::out_of_range
.
Перегрузка (4) не имеет параметров "pos", но не помечена как noexcept
.
Это до реализации, кидает ли она или нет?
В GCC 7 libstdc++ он вызывает char_traits<char>::length
и char_traits<char>::compare
. Они, кажется, не в состоянии бросить, но не помечены как noexcept
.