cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Добавление спецификатора noexcept для методов contains(p0458)/count/find #320

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +1, -0 Автор идеи: michail.vms

Предлагаю добавить спецификатор noexcept к функции contains из p0458 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0458r0.html), а также к функции count стандартных контейнеров. А для метода find в качестве спецификации noexcept, если соответствующий конструктор итератора тоже noexcept.

Полагаю, что спецификатор noexcept хорошо согласуется с неявным контрактом, который подразумевается для функций contains/count/find, применяемых для контейнеров как минимум с базовой гарантией исключений.

apolukhin commented 3 years ago

Андрей Руссков, 9 июля 2018, 12:49 хоть это и является признаком дурного тона, компараторы тоже могут кидать исключения.

WPMGPRoSToTeMa, 27 июля 2018, 1:45 Андрей Руссков, в таком случае можно выставлять noexcept в зависимости от того является ли компаратор noexcept.