C++ Code Example 3: Function Templates – Determine min and max Value

In this code example, the min and max value of two numbers is output via a function template.

#include <iostream>
using namespace std;

template <typename T>
T max(T *a, T *b) {
    return (*a > *b ? *a : *b);
}

template <typename T>
T min(T *a, T *b) {
    return (*a < *b ? *a : *b);
}

int main() {
    int a = 10, b = 12;
    double c = 3.34, d = 3.43;

    cout << "Max value: " << max(&a, &b) << endl;
    cout << "Min value: " << min(&c, &d);

    return 0;
}
Output
Max value: 12
Min value: 3.34