-// File: NCollection_TListIterator.hxx
-// Created: Tue Apr 23 17:33:02 2002
-// Author: Alexander KARTOMIN
-// <a-kartomin@opencascade.com>
+// Created on: 2002-04-23
+// Created by: Alexander KARTOMIN
+// Copyright (c) 2002-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
#ifndef NCollection_TListIterator_HeaderFile
#define NCollection_TListIterator_HeaderFile
-#include <NCollection_BaseCollection.hxx>
#include <NCollection_BaseList.hxx>
#include <NCollection_TListNode.hxx>
-#ifdef WNT
-// Disable the warning "operator new unmatched by delete"
-#pragma warning (push)
-#pragma warning (disable:4291)
-#endif
-
/**
* Purpose: This Iterator class iterates on BaseList of TListNode and is
* instantiated in List/Set/Queue/Stack
* Remark: TListIterator is internal class
*/
template <class TheItemType> class NCollection_TListIterator
- : public NCollection_BaseCollection<TheItemType>::Iterator,
- public NCollection_BaseList::Iterator
+ : public NCollection_BaseList::Iterator
{
public:
//! Empty constructor - for later Init
//! Constructor with initialisation
NCollection_TListIterator (const NCollection_BaseList& theList) :
NCollection_BaseList::Iterator (theList) {}
- //! Assignment
- NCollection_TListIterator& operator= (const NCollection_TListIterator& theIt)
- {
- NCollection_BaseList::Iterator& me = * this;
- me.operator= (theIt);
- return * this;
- }
//! Check end
- virtual Standard_Boolean More (void) const
+ Standard_Boolean More (void) const
{ return (myCurrent!=NULL); }
//! Make step
- virtual void Next (void)
+ void Next (void)
{
myPrevious = myCurrent;
myCurrent = myCurrent->Next();
}
//! Constant Value access
- virtual const TheItemType& Value (void) const
+ const TheItemType& Value (void) const
{ return ((const NCollection_TListNode<TheItemType>*) myCurrent)->Value(); }
//! Variable Value access
- virtual TheItemType& ChangeValue (void) const
+ TheItemType& ChangeValue (void) const
{ return ((NCollection_TListNode<TheItemType> *)myCurrent)->ChangeValue(); }
- //! Operator new for allocating iterators
- void* operator new(size_t theSize,
- const Handle(NCollection_BaseAllocator)& theAllocator)
- { return theAllocator->Allocate(theSize); }
};
-#ifdef WNT
-#pragma warning (pop)
-#endif
-
#endif