[Dune] ConstIterator

Robert Kloefkorn robertk at mathematik.uni-freiburg.de
Tue Jan 18 18:57:35 CET 2005


Christian Engwer wrote:
> Hallo,
> 
> Un wieso checkst Du es dann eifach ein und schreibst nichts zu Deinem
> Vorschlag?
Ich dachte die Komentare im cvs-checkin würden reichen, da ihr ja 
Experten in der Frage seit und meinen Code sicher versteht. Ausserdem 
steht ich momentan etwas unter Zeitdruck und habe noch nciht die Zeit 
gefunden, eine ausführliche mail zu schreiben, allerdings nehme ich mir 
die Zeit grade. Ausserdem sollten wir uns mal wieder alle ein bisschen 
zusammenreissen. Ich möchte sicher nicht eure Idee schlechtmachen. 
Immerhin habe ihc nicht nur Kritik geübt sondern auch noch über eine 
Lösung nachgedacht. Ich denke wir können das am Freitag ausführlicher 
diskutieren. ich wollte euch nur die Möglichkeit geben, meinen Vorschlag 
schon mal vorher anzuschauen, um eventuelle Schwachstellen zu entddecken 
die mir bisher entgangen waren. Ich denke das ist besser als am Freitag 
dann einen Voschlag aus dem blauen heraus zu machen.

> 
>>finde ich die Umsetzung ziemlich kompilziert und das Ko-Kritierum ist, 
>>das man die Schnittstell ändern muss, nur weil man den Code sonst nicht 
> 
> 
> Ja unser Vorschlag ist kompiliziert, aber wir hatten unseren mails
> auch beschrieben wieso es so kompilziert sein muss und wie man es
> einfacher machen kann.
> 
> Bei deinem Vorschlag stelle ich jetzt fest, dass Du auch auf eine Idee
> kamst, wie wir sie am Anfang verfolgt haben, nur Leider hast Du sie
> nicht zu Ende gefuehrt, denn sonst waerst Du bei unserer Loesung
> gelandet.
> Du lieferst in Deinem ConstIterator eine Entity zurueck, was aus Du
> aber nicht darfst, da Du ein const Gitter hast.

Stimmt nicht. Der ConstIterator liefert eine const Entity. Aber das 
meinst Du sicher nicht. Der LevelIterator hat noch einen const 
operator*() bekommen. Das ist der einzige Zusatz an die Schnittstelle. 
Das jetzt der ConstIterator nur noch den const operator*() hat, kann 
dort auch nur der const operator *() des LevelIterator verwendet werden. 
Alles total legal.

> Um es noch weiter zu treiben koennte ich mir jetzt von der Entity
> einen _nicht const_ LevelIterator zurueck geben lassen. Genauso
> liefert eine Entity _immer_ IntersectionIteratoren und unterscheidet
> nicht nach const oder nicht const.
> Auf diesem Zweig wirst Du, wenn Du ihn bis ans Ende durchdenkst zur
> gleichen Erkenntnis gelangen wie wir.

Sicher, ihr habt euch mehr Gedanken gemacht. Ich bin mir sicher, das man 
das Ganze für den HierarchicIterator und den IntersectionIterator auch 
so machen kann. Ich weiss allerdings nicht ob ich das bis Freitag noch 
schaffe um die Machbarkeit zu überprüfen.

> Du haettest (so wie wir es auch gemacht habe) einen branch dafuer
> anlegen sollen, oder haettest sonst auch ein diff rumschicken koennen,
> wenn dir der Branch zuviel Muehe ist.
Ja, der Branch war mir definitiv zu viel Mühe. Ich bin halt kein 
cvs-Experte und mein checkin ändert ja nicht die anderen bestehenden 
sourcen, ist also auch so ok, denke ich zumindest.

Grüssle

R

-- 

   Robert Klöfkorn           <robertk at mathematik.uni-freiburg.de>

   Mathematisches Institut              Tel: +49 (0) 761 203 5631
   Abt. für Angewandte Mathematik       Fax: +49 (0) 761 203 5632
   Universität Freiburg
   Hermann-Herder-Str. 10
   79104 Freiburg

   http://www.mathematik.uni-freiburg.de/IAM/homepages/robertk




More information about the Dune mailing list