Der Einsatz dieser Queue ist überall dort gefragt wenn es Universell, schnell zuverlässig und einfach zu Handhaben sein soll. In der L3lib wird diese Queue eingesetzt wenn an beiden Enden der Queue Daten ein und ausgefügt werden sollen. Einsatzbereich: Ein, Ausgabe Pufferung, Netzwerkpakete etc. Wie alle L3Lib Queues ist diese Queue als TemplateKlasse ausgelegt, komplett inline ausgeführt und verwaltet die Zeiger auf die Objekte. dequeue::dequeue(); Es wird noch kein Speicher allokiert. Der Konstruktor initialisiert lediglich 4 Integer. dequeue::dequeue(); Gibt Speicher der queue frei, ohne die Objekte zu löschen. Um auch die Objekte zu löschen ist folgender Code sinnvoll:
	while( T = m_fruitobjects.Get() ) delete T;
		void Clear(void);		// logically clear the queue
		void Init(int max);		// set size of queue (hint)
								// Init destroys contents and resets all
		void PutFront( T *element);		// adds element on Front of queue
		T	*GetFront(void);			// zero if queue empty
		void PutBack( T *element);		// adds element on Back of queue
		T	*GetBack(void);				// zero if queue empty
		void Put( T* element ) { PutBack(element);}	// Put/Get Support
		T*	 Get(void) { return GetBack();}
		
		int  InQueue(void);			// returns number of elements queue
		bool IsEmpty(void) const;	// true if InQueue() returns zero
		
		// iteration
		void Set(int index);	// sets iteration index
		void Reset(void);		// resets iteration index (same as Set(0) )
		T	*Next(void);		// returns current element or 0 if no more left, Resets iterator
		T	*NextNoReset(void);	// returns current element or 0 if no more left, Does not reset iterator
		T* operator[](int i) const;	// returns element at index i
		T * SetAt(int i,T* newvalue); // direct access to element, replaces element 
		
		virtual	void Extend(void);	// called from Put*() if stacksize reaches max_elements