Template Type Parameters By Reference


#include <iostream>

template <typename T> const T &maximum(const T &a, const T &b);

int main(int argc, char *argv[]) {
  double a{23.5};
  double b{51.2};

  std::cout << "Out - &a: " << &a << std::endl;
  double max1 = maximum(a, b);
  std::cout << "max1: " << max1 << std::endl;

  return 0;
}

template <typename T> const T &maximum(const T &a, const T &b) {
  std::cout << "In - &a: " << &a << std::endl;
  return (a > b) ? a : b;
}