• Keine Ergebnisse gefunden

Farzin.Ghorban@studs.math.uni-wuppertal.de WS2012/2013–¨Ubungsblatt1010.Januar2013Abgabe:bis17.Januar2013an GenerischeProgrammierung(SpezielleKapitelderpraktischenInformatik)

N/A
N/A
Protected

Academic year: 2022

Aktie "Farzin.Ghorban@studs.math.uni-wuppertal.de WS2012/2013–¨Ubungsblatt1010.Januar2013Abgabe:bis17.Januar2013an GenerischeProgrammierung(SpezielleKapitelderpraktischenInformatik)"

Copied!
2
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 2012/2013 – ¨ Ubungsblatt 10 10. Januar 2013

Abgabe: bis 17. Januar 2013 an

Farzin.Ghorban@studs.math.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. Metaprogrammierung Lesen Sie

http://divyekapoor.blogspot.com/2008/07/walking-through-your-first-template.html und testen Sie das Fibonacci-Beispiel.

Welche Einsatzgebiete sieht der Autor f¨ur Metaprogrammierung?

Welche Einsatzgebiete sehen Sie?

Aufgabe 2. CONCEPT CHECK REQUIRES()

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 CHECK- Konzepte.

Provozieren Sie Konzeptverletzungen bei der Template-Instantiierung:

Welche Fehlermeldungen werden erzeugt?

Aufgabe 3. EqualTypes

Testen Sie mit Hilfe des Templates

template< typename T1 , typename T2 >

st r uc t EqualTypes {

enum { r e s u l t = f a l s e }; };

template< typename T >

st r uc t EqualTypes<T, T> { enum { r e s u l t = true };

};

1

(2)

in wieweit durch typedefs erkl¨arte Typnamen von C++ als identisch zu ihren Ursprungstypen aufgefasst werden (bei selbstdefinierten Klassen, enum’s, ...).

Aufgabe 4. Inheritance check

Welche Ausgabe produziert das Programm:

template <c l a s s Derived , c l a s s Base>

c l a s s Check {

c l a s s Nope { };

c l a s s Yep {char Dummy [ 3 ] ;}; s t a t i c Yep Test ( Base∗) ; s t a t i c Nope Test ( . . . ) ; public:

enum {

I s D e r i v e d = s i z e o f( Test (s t a t i c c a s t<D er i ved∗>(0)))

== s i z e o f( Yep ) };

};

c l a s s X { };

c l a s s Y : public X { }; i n t main ( )

{

co ut << Check<Y, X>: : I s D e r i v e d << e n d l ;

co ut << Check<int , s t r i n g >: : I s D e r i v e d << e n d l ; return 0 ;

}

Warum?

Schreiben Sie eine kurze Anwendungsdokumentation f¨ur die Metafunk- tion Check<.,.>::IsDerived

2

Referenzen

ÄHNLICHE DOKUMENTE

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

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

Schreiben Sie eine analog zu der Dokumentation der STL-Algorithmen (http://www.sgi.com/tech/stl/) aufgebaute Dokumentation Ihres ge- nerischen Algorithmus.

Schreiben Sie kurze Benutzungsanleitungen (Fallstudien) ¨uber den Um- gang mit statischen Bibliotheken: Hinzuf¨ugen einer neuen Objektdatei, ersetzen einer aktualisierten

Welcher ge- nerische Algorithmus ben¨otigt einen dieses Requirement erf¨ullenden Templateparameter.

Erg¨anzen Sie Ihre L¨osung von Aufgabe 2 um eine ¨ Uberpr¨ufung des Generischen Parameters InputIterator auf eben diese Eigenschaft (vgl.. 1.15.1 der Materialsammluing) und

Benutzen Sie das Template promote trait in einer Templatefunktion my_min und testen Sie es f¨ur mindestens 10 unterschiedliche Typpaare.. Schreiben Sie ein ¨ahnliches

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