remove_prefix не noexcept?
От: B0FEE664  
Дата: 20.05.21 15:50
Оценка:
std::basic_string_view<CharT,Traits>::remove_prefix
constexpr void remove_prefix(size_type n);


Почему функция remove_prefix не noexcept?
И каждый день — без права на ошибку...
Re: remove_prefix не noexcept?
От: reversecode google
Дата: 20.05.21 16:01
Оценка: -3
потому что она констр експр
Re[2]: remove_prefix не noexcept?
От: B0FEE664  
Дата: 20.05.21 16:41
Оценка:
Здравствуйте, reversecode, Вы писали:

R>потому что она констр експр


, но допустим. Тогда зачем data() noexcept?
std::basic_string_view<CharT,Traits>::data
constexpr const_pointer data() const noexcept;
И каждый день — без права на ошибку...
Re[2]: remove_prefix не noexcept?
От: serg_joker Украина  
Дата: 20.05.21 17:07
Оценка: +1
Здравствуйте, reversecode, Вы писали:
R>потому что она констр експр
А разве из constexpr следует noexcept? Да, в случае использования constexpr ф-ции в compile-time-evaluated-context, она не может бросать исключение, но ведь её можно использовать и вне компайл-тайм контекстов, там, вроде, нет запретов?
Или я что-то упускаю?
Re[3]: remove_prefix не noexcept?
От: reversecode google
Дата: 20.05.21 17:18
Оценка:
ах ну да
но я уже пересмотрел
https://en.cppreference.com/w/cpp/header/string_view
и понял почему
а вы ?
Re: remove_prefix не noexcept?
От: watchmaker  
Дата: 20.05.21 17:58
Оценка: 7 (2) :)
Здравствуйте, B0FEE664, Вы писали:

BFE>Почему функция remove_prefix не noexcept?


Кстати, в ранних версиях proposal, когда класс ещё назывался string_ref, там был noexcept. Но потом его убрали и выразили эти методы через через substr (например, смотри N3762 и ранее), а substr кидает исключение в случае неверных параметров.
А потом реализацию переформулировали в других терминах ещё раз (см. N3849 и далее) и вызов substr также пропал из спецификаии.
А сигнатура осталась
Отредактировано 20.05.2021 18:43 watchmaker . Предыдущая версия . Еще …
Отредактировано 20.05.2021 18:24 watchmaker . Предыдущая версия .
Re[4]: remove_prefix не noexcept?
От: vopl Россия  
Дата: 21.05.21 13:46
Оценка:
Здравствуйте, reversecode, Вы писали:

R>ах ну да

R>но я уже пересмотрел
R>https://en.cppreference.com/w/cpp/header/string_view
R>и понял почему
R>а вы ?

Ну не томи !
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.