sum.cpp

#include <iostream>
#include <concepts>

template<typename T>
concept Sumable = requires (T a, T b) {
  {a + b} -> std::convertible_to<T>;
};

template <Sumable T>
T sum(T a, T b) {
  return a + b;
};


int main() {
  std::cout << sum(1,2) << std::endl;
  std::cout << sum(1.2,2.3) << std::endl;
  std::cout << sum("Hello, "s, "World!"s) << std::endl;
}