Closed NN--- closed 3 years ago
Эти методы обладают неопределённым поведением, если им передать не \0
терминированную строку. Комитет подобгые местоды с UB на некоторых значениях называет методами с "узким контрактом" (narrow contract).
Все методы с narrow contract не помечаются в стандарте как noexcept. (Есть правда пара досадных исключений, которые уже невозможно исправить)
<Описание вашей идеи> Как известно конструктор basic_string_view , а также remove_prefix не являются noexcept. Нет никаких причин, кроме исторических, не объявить их как noexcept. В принципе весь класс мог бы быть noexcept.
<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше> Полезность noexcept в местах без исключений вполне очевидна. Получаем больше оптимизаций от компилятора.