• Keine Ergebnisse gefunden

c.seepold@uni-wuppertal.de WS2010/2011–¨Ubungsblatt1010.Januar2011Abgabe:bis17.Januar2011an GenerischeProgrammierung(SpezielleKapitelderpraktischenInformatik)

N/A
N/A
Protected

Academic year: 2022

Aktie "c.seepold@uni-wuppertal.de WS2010/2011–¨Ubungsblatt1010.Januar2011Abgabe:bis17.Januar2011an GenerischeProgrammierung(SpezielleKapitelderpraktischenInformatik)"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

BERGISCHE UNIVERSIT ¨ AT WUPPERTAL

GAUSS-STRASSE 20 42119 WUPPERTAL TELEFAX (0202) 439-2901 TELEFON (0202) 439-0 WWW www.uni-wuppertal.de

Fachbereich C

MATHEMATIK UND NATURWISSENSCHAFTEN Fachgruppe Mathematik und Informatik

Generische Programmierung

(Spezielle Kapitel der praktischen Informatik)

WS 2010/2011 – ¨ Ubungsblatt 10 10. Januar 2011

Abgabe: bis 17. Januar 2011 an c.seepold@uni-wuppertal.de

Prof. Dr. Hans-J¨urgen Buhl Praktische Informatik / Numerik

E-Mail: Hans-Juergen.Buhl@math.uni-wuppertal.de WWW: http://www.math.uni-wuppertal.de/buhl

Aufgabe 1. Vorbedingungen in Templates

Demonstrieren Sie die Benutzung von static assert(), um die Template-Metafunktion fact (Aufgabe 3 von ¨Ubungsblatt 7) vor dem Aufruf mit einem negativen Templateparameter-Wert zu sch¨utzen. Tes- ten Sie!

Warum nennt man fact in diesem Zusammenhang eine Metafunktion und nicht einfach eine Funktion?

Aufgabe 2. Vorbedingungen in Templates: Fortsetzung

Demonstrieren Sie die Benutzung von static assert(), um die Template-Metafunktion template<int n, int m> struct cpower::result gegen unsinnige Parameter abzusichern.

Aufgabe 3. Vorbedingungen in Templates: Fortsetzung 2

Demonstrieren Sie die Benutzung von static assert(), um die Template-Metafunktion template <unsigned long N> struct binary::value gegen einen unsinnigen Parameter abzusichern.

Aufgabe 4. Lesen Sie

http://accu.org/index.php/journals/424

und referieren Sie die Anwendung der Metaprogrammierung f¨ur das N-Queens-Problem.

Testen Sie das Programm selbst aus. Was ist das Hauptproblem des Einsatzes von Compiletime-Metaprogrammen?

1

Referenzen

ÄHNLICHE DOKUMENTE

Demonstrieren Sie anlog, wie Sie die Template-Metafunktion template &lt;unsigned long N&gt; struct binary::value gegen einen unsinnigen

Demonstrieren Sie anlog, wie Sie die Template-Metafunktion template &lt;unsigned long N&gt; struct binary::value gegen einen unsinnigen

Demonstrieren Sie anlog, wie Sie die Template-Metafunktion template &lt;unsigned long N&gt; struct binary::value gegen einen unsinnigen Parameter absichern.

Erg¨anzen Sie die generischen Funktionen my min(-), arith average(-,-) und geomMittel2(-,-) der letzten ¨ Ubungs- bl¨atter um die ¨ Uberpr¨ufung geeignet gew¨ahlter CONCEPT

Demonstrieren Sie analog, wie Sie die Template-Metafunktion template&lt;int n, int m&gt; struct cpower::result gegen unsinnige Parameter absichern k¨onnen.

Statten Sie die Templatefunktion arithAverage(T1 x, T2 y) (Auf- gabe 1/Blatt 6) mit eigenen Boost-Concepts aus und benutzen Sie das Makro BOOST CONCEPT REQUIRE() zur Erzwingung

Demonstrieren Sie static assert() in einem Beispielprogramm, das nur compiliert werden kann, wenn Ihre C++-Sprachumgebung einen 4 Byte langen int-Typ besitzt. Benutzen Sie dabei die

Erstellen Sie eine ¨ Ubersicht der von Ihnen gefundenen Policies und der Ihnen w¨unschenswert erscheinenden Auspr¨agungen dieser Policies.