// Makes bogus x86 assembly code. #include <iostream> using namespace std; template<class T> T max(T a, T b) { return (a > b) ? a : b; } // Prototypes (enable one or the other) double max<>(double, double); // ERROR - bogus code // int max(int, int); int main() { int i = 123; double d = 1234.5678; cout.precision(12); cout << max(d, i) << endl; // #1 cout << max(i, d) << endl; // #2 return 0; }