#include #include using namespace std; template T manji(T x, T y) { return x < y ? x : y; } char* manji(char* x, char* y) { return strcmp(x, y) < 0 ? x : y; } template class Par { public: Par(T x, T y) :_prvi(x), _drugi(y) {} T vratiPrvi() const { return _prvi; } T vratiDrugi() const { return _drugi; } 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() { cout << manji(2, 3) << endl; cout << manji(2, 3) << endl; cout << manji(3, 2) << endl; cout << manji(2.2, 3.3) << endl; cout << manji('A', 'C') << endl; cout << manji(2.2, 3) << endl; char *s1 = "mirko"; char *s2 = "spasic"; cout << manji(s1, s2) << endl; Par p(2, 3); cout << p << endl; Par p1('a', 'c'); cout << p1 << endl; Par > p2(Par(1,2), Par(3,4)); cout << p2 << endl; return 0; }