#include #include #include #include #include // Die cond Funktion ist ein Makro #define cond(a,b,c) ( (a) ? (b) : (c) ) // Drucke das Argument und gebe es zurueck template T print (T x) { std::cout.precision(16); std::cout << x << std::endl; return x; } // Drucke Argument 1 und gebe das letzte Argument zurueck template T2 print (T1 x1, T2 x2) { std::cout.precision(16); std::cout << x1 << std::endl; return x2; } // Drucke Argumente 1-2 und gebe das letzte Argument zurueck template T3 print (T1 x1, T2 x2, T3 x3) { std::cout.precision(16); std::cout << x1 << " " << x2 << std::endl; return x3; } // Drucke Argumente 1-3 und gebe das letzte Argument zurueck template T4 print (T1 x1, T2 x2, T3 x3, T4 x4) { std::cout.precision(16); std::cout << x1 << " " << x2 << " " << x3 << std::endl; return x4; } // gebe einfach Null zurueck. Vorsicht: Koennte bei Optimierung dazu // fuehren, dass das Argument gar nicht berechnet wird. template int dump (T x) { return 0; } // Gebe eine int Zahl ein und liefere diese als Ergebnis int enter_int () { int x; std::cin >> x; return x; } // Gebe eine int Zahl ein und liefere diese als Ergebnis int enter_int (std::string s) { std::cout << s; int x; std::cin >> x; return x; } // Lese Argument i als int-Zahl ein int readarg_int (int argc, char** argv, int i) { if (argc