007
05.12.2008, 18:33 Uhr
0xdeadbeef
Gott (Operator)
|
Hmm...das Problem ist, dass die Dimensionen des Rechtecks zur Laufzeit eingelesen werden sollen, das macht die Benutzung von Template-Metaprogrammierung schwierig.
Wenn's zur Compilezeit feststehen darf:
C++: |
#include <iostream>
template<int width> void print_line() { std::cout << '*'; print_line<width - 1>(); }
template<> void print_line<0>() { std::cout << '\n'; }
template<int height, int width> struct rectangle_printer { static void print() { print_line<width>(); rectangle_printer<height - 1, width>::print(); } };
template<int width> struct rectangle_printer<0, width> { static void print() { } };
int main() { rectangle_printer<5, 10>::print(); }
|
...dumm nur, dass Funktionsvorlagen nicht partiell spezialisiert werden können.
Nachtrag: Mit std::string wär's natürlich einfacher, aber irgendwie ist das ja geschummelt. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 05.12.2008 um 18:37 Uhr von 0xdeadbeef editiert. |