Составное требование в C++
Составное требование связывает выражение
с ожидаемым типом через стрелку ->.
Форма { expr } -> std::same_as<bool>
проверяет и сам оператор, и тип результата.
Подключите #include <concepts>,
опишем Eq и выведем ответ сравнения:
#include <concepts>
#include <iostream>
template<typename T>
concept Eq = requires(T a, T b) {
{ a == b } -> std::same_as<bool>;
};
template<Eq T>
bool same(T left, T right) {
return left == right;
}
int main() {
std::cout << same(3, 3) << "\n";
return 0;
}
Задайте концепт Less с составным
требованием { a < b } -> std::same_as<bool>.
Напишите шаблон before и выведите
результат для 2 и 8.