The GroupIndex Template Library
Main Page | Class Hierarchy | Class List | File List | Class Members

groupindex::trivial_container< T > Class Template Reference

Diese Template-Klasse macht aus einer beliebigen Klasse T einen Container. More...

#include <trivial_container.h>

List of all members.

Public Member Functions

void insert (const iterator &pos, const T &t)
 trivial_container (const T &t)
iterator begin () const
iterator end () const


Detailed Description

template<class T>
class groupindex::trivial_container< T >

Diese Template-Klasse macht aus einer beliebigen Klasse T einen Container.

Ein solcher Container enthält entweder ein oder kein Objekt vom Typ T. Ist ein trivial_container<T> - Objekt tc nicht leer, so liefert *(tc.begin()) das Objekt vom Typ T. tc.begin()++ liefert dann einen trivial_container<T>::iterator zurück, der gleich tc.end() ist.

Die Klasse trivial_container<T> ist voll Zuweisungskompatibel mit der Klasse T, d.h Programmzeilen wie die folgende sind erlaubt:

 myClass x;
 trivial_container<myClass> tc;
 ...
 x = tc;
 ...
 tc = x;
In Zusammenhang mit den GroupIndex - Klassen ist diese (an sich sinnlos erscheinende) Klasse sehr nützlich. Beispielsweise kann der derselbe Programmcode für reguläre und nicht-reguläre Gruppenoperationen verwendet werden: bei regulären Gruppenoperationen wird der trivial_container<Group> für den Stabilisator verwendet, bei nicht-regulären Gruppenoperationen kann ein anderer Container, z.B. ein std::list<Group> (bzw. deren Zuweisungskompatible Variante groupindex::ac_list<Group>) verwendet werden. Im Falle der regulären Gruppenoperation wird dann mit einem Iterator über den einelementigen Stabilisator iteriert, im nicht-regulären Fall über den entsprechenden "echten" Container. Dadurch wird die Implementierung regulärer Gruppenoperationen erheblich erleichtert.


The documentation for this class was generated from the following file:
The GroupIndex-Template-Library
Universität Bonn, Institut für Informatik III, 2001