#include #include #include "min.h" using namespace std; int main() { int i {10}; int j {20}; double d {3.14}; cout << ::min(i, j) << "\n"; //will compile; both are int's cout << ::min(i, d) << "\n"; //won’t compile cout << ::min(static_cast(i), d) << "\n"; //brute force cout << ::min(i, d) << "\n"; //elegant: explicit template arg return EXIT_SUCCESS; }