Введение в концепты в C++
Концепт - это имя для набора условий, которым должен удовлетворять тип в шаблоне.
Требование пишут отдельным объявлением
до функции main, а затем подставляют
в шаблон вместо длинных enable_if.
Подключите #include <concepts>
и зададим концепт Small для целых
не шире четырех байт:
#include <concepts>
#include <iostream>
template<typename T>
concept Small = std::integral<T> && sizeof(T) <= 4;
template<Small T>
T twice(T value) {
return value + value;
}
int main() {
std::cout << twice(11) << "\n";
return 0;
}
Для int условие выполняется, поэтому
вызов с целым аргументом собирается без ошибки.
Имя Small сразу показывает смысл
ограничения в сигнатуре шаблона.