#include template auto sum(T1 a, T2 b) -> decltype(a+b) { return a + b; } int main() { auto x = 3; decltype(x) y = x; std::cout << x << ' ' << y << ' ' << sum(x,y) << '\n'; }