Выражение-требование в C++
Нужные операции для заданных параметров перечисляет Requires-выражение, и компилятор обязан их сформулировать.
Каждая строка внутри блока - отдельная проверка;
достаточно одной удачной записи сложения.
Зададим концепт CanAdd и выведем
результат шаблонной функции:
#include <iostream>
template<typename T>
concept CanAdd = requires(T x, T y) {
x + y;
};
template<CanAdd T>
T sum(T first, T second) {
return first + second;
}
int main() {
std::cout << sum(2, 5) << "\n";
return 0;
}
Опишите requires-выражение с одной
строкой a - b для параметров
T a и T b. Используйте
его в концепте CanSub и выведите
разность 9 и 4 через
шаблонную функцию.