Все специализации std:: hash для определяемых пользователем типов должны иметь оператор вызова функции noexcept
Все специализации std:: hash для определяемых пользователем типов должны иметь оператор вызова функции noexcept.
std::hash специализации, предоставляемые стандартной библиотекой, не имеют никаких исключений. При создании вручную std::hash специализация, эмулируйте эту гарантию для вашей специализации. Определение всех специализаций std::hash для пользовательских типов данных noexcept.
В противном случае стандартные контейнеры библиотеки, использующие специализацию std::hash косвенно может привести к непроверенным исключениям. Исключения не перехватываются, поскольку стандартные контейнеры библиотеки не обеспечивают возможности использования try-catch блоки для исключений из std::hash.
Чекер флаги специализации std::hash шаблон с пользовательскими типами, не имеющими noexcept спецификатор.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Библиотека поддержки языка |
| Категория: Обязательно, Автоматизировано |