Библиотека концепций (concepts library) — это новая библиотека, добавленная в C++20 для работы с концепциями.
Концепции позволяют формально определять требования к типам. Они похожи на шаблоны, но проверяют не только наличие определенных операций, но и семантику этих операций.
Концепции используются для:
— Проверки корректности типов в шаблонах функций и классов.
— Ограничения диапазона допустимых типов.
— Улучшения сообщений об ошибках компиляции.
— Возможности оптимизации кода компилятором.
В примере концепция
equality_comparable используется для проверки, что тип T поддерживает операцию ==, необходимую для сортировки. Это позволяет выявить ошибку на этапе компиляции.
