#include #include using namespace std; template T manji(T a, T b) { return a < b ? a : b; } char* manji(char *a, char *b) { if (strcmp(a, b) < 0) return a; else return b; } template class Par { public: Par(T a, T b) :_prvi(a), _drugi(b) {} void pisi(ostream &izlaz) const { izlaz << "(" << _prvi << ", " << _drugi << ")"; } private: T _prvi; T _drugi; }; template ostream& operator<<(ostream &izlaz, const Par& p) { p.pisi(izlaz); return izlaz; } int main() { int x = 2, y = 5; cout << manji(x, y) << endl; double z = 2.3, w = 1.9; cout << manji(z, w) << endl; char c = 'a', d = 'b'; cout << manji(c, d) << endl; cout << manji(2.3, 4) << endl; //char *s = "mirko"; //char *t = "spasic"; //cout << manji(s, t) << endl; Par p(1,2); cout << "p = " << p << endl; Par p1(1.1,2.2); cout << "p1 = " << p1 << endl; Par > p2(Par(1,2), Par(3,4)); cout << "p2 = " << p2 << endl; return 0; }