
 // -*- C++ -*-


 namespace Hurricane {

 /*! \class        SetCollection
  *  \brief        SetCollection description (\b API)
  *
  *  \section      secSetCollectionIntro  Introduction
  *
  *                This collection allows you to handle a STL set as a 
  *                collection. 
  *
  *                In priciple you don't need to handle directly this 
  *                collection, you only need to handle a generic collection 
  *                bound to a <b>SetCollection</b> as created by the generic 
  *                function <b>GetCollection</b>(...) which builds one when its 
  *                argument is a STL set (for that reason we will not describe 
  *                it). 
  * 
  *
  *  \section      secSetCollectionOverloadingsOfTheGetcollectionGenericFunction  Overloadings of the GetCollection generic function
  *
  *                <b>Hurricane::SetCollection::GetCollection</b>
  *                <b>Hurricane::SetCollection::GetCollection</b>
  * 
  *
  *  \section      secSetCollectionRemarks  Remarks
  *
  *                Like for the other collections, there is no copy of the 
  *                elements included in the set, but instead a link from the 
  *                collection to the set. 
  *
  *                Once the collection as been built, you can perfectly modify 
  *                the set; the added or deleted elements will be taken into 
  *                account when visiting the set, as shown in the following 
  *                example : 
\code
set<Net*> netSet;
 
Nets nets = GetCollection(netSet);
// nets is then bound to the set netMap
// and will reflect its content until the end
 
// so we can :
assert(nets.IsEmpty());
 
Cell* cell = ... // we get a cell
if (cell) {
   Net* net = cellGetNet("vdd");
   if (net) {
      netSet.insert(net);
      // and now
      assert(nets.GetSize() == 1);
   }
}
\endcode
  */


 /*! \function     GenericCollection<Element> SetCollection::GetCollection(const set<Element,Compare>& elementSet);
  *                See below.
  */

 /*! \function     GenericCollection<Element> SetCollection::GetCollection(const set<Element,Compare>* elementSet);;
  *                Those two function return into generic collection bound to a 
  *                <b>SetCollection</b> the content of the STL set given in 
  *                argument. 
  */

 }
