Одинаковые типы в C++
Точное совпадение типов без преобразований сравнивает std::same_as.
Его часто комбинируют с параметром шаблона
внутри requires. Подключите
#include <concepts>, зададим
функцию pair_equal и выведем
результат сравнения:
#include <concepts>
#include <iostream>
template<typename A, typename B>
concept SameTypes = std::same_as<A, B>;
template<typename T>
requires SameTypes<T, T>
bool pair_equal(T left, T right) {
return left == right;
}
int main() {
std::cout << pair_equal(8, 8) << "\n";
return 0;
}
Объявите концепт BothInt как
std::same_as<T, int>. Напишите
шаблон match с двумя параметрами
int и выведите результат для
4 и 4.