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