requires clause в С++20 — это новый синтаксис для задания требований к шаблонам, альтернативный requires-выражениям.
requires clause позволяет задавать требования к типам непосредственно при объявлении шаблона. Это делает код более читабельным и понятным.
Requires clause применяется для:
— Проверки наличия определенных возможностей у типов-параметров шаблонов.
— Ограничения допустимых типов-параметров.
— Условного компилирования шаблонов в зависимости от типов.
В примере requires clause гарантирует, что функция
add будет работать только с целочисленными типами. Это делает намерения программиста явными и позволяет лучше контролировать вызовы шаблона.
