--- ./classes/include/Ipv4PrefixPatricia.hh.in.orig Fri Jan 21 07:21:59 2000 +++ ./classes/include/Ipv4PrefixPatricia.hh.in Wed Sep 25 16:38:10 2002 @@ -80,6 +80,9 @@ * December 1998 */ //---------------------------------------------------------------------------- + +template class Ipv4PrefixPatricia; + template class Ipv4PrefixPatricia { @@ -215,7 +218,7 @@ // class variables //------------------------------------------------------------------------ Ipv4PrefixPatricia *nodePtr; - vector::iterator vlsmIter; + typename vector::iterator vlsmIter; bool wentLeft; bool wentRight; @@ -227,7 +230,7 @@ StackEntry() { this->nodePtr = (Ipv4PrefixPatricia *)0; - this->vlsmIter = (vector::iterator)0; + this->vlsmIter = (typename vector::iterator)0; this->wentLeft = false; this->wentRight = false; } @@ -253,7 +256,7 @@ ~StackEntry() { this->nodePtr = (Ipv4PrefixPatricia *)0; - this->vlsmIter = (vector::iterator)0; + this->vlsmIter = (typename vector::iterator)0; } //------------------------------------------------------------------------- @@ -297,7 +300,7 @@ vector nodeStack; Ipv4PrefixPatricia *nodePtr; bool end; - VlsmList::iterator vlsmIter; + typename VlsmList::iterator vlsmIter; //------------------------------------------------------------------------ // iterator() @@ -366,7 +369,7 @@ //------------------------------------------------------------------------ iterator & operator ++ (int foo) { - vector::iterator stackIter; + typename vector::iterator stackIter; uint32_t bitNum; Ipv4PrefixPatricia *leftNode; Ipv4PrefixPatricia *rightNode; @@ -501,7 +504,7 @@ public: vector nodeStack; Ipv4PrefixPatricia *nodePtr; - VlsmList::reverse_iterator vlsmIter; + typename VlsmList::reverse_iterator vlsmIter; bool end; //------------------------------------------------------------------------ @@ -556,7 +559,7 @@ //------------------------------------------------------------------------ reverse_iterator & operator ++ (int foo) { - vector::iterator stackIter; + typename vector::iterator stackIter; uint32_t bitNum; Ipv4PrefixPatricia *leftNode; Ipv4PrefixPatricia *rightNode; @@ -721,7 +724,7 @@ { StackEntry stackEntry; iterator retIter; - vector::iterator stackIter; + typename vector::iterator stackIter; Ipv4PrefixPatricia *leftNode; Ipv4PrefixPatricia *rightNode; uint32_t bitNum; @@ -799,7 +802,7 @@ { StackEntry stackEntry; reverse_iterator retIter; - vector::iterator stackIter; + typename vector::iterator stackIter; Ipv4PrefixPatricia *leftNode; Ipv4PrefixPatricia *rightNode; uint32_t bitNum; @@ -912,7 +915,7 @@ { iterator retIter; Ipv4PrefixPatricia *treeNode, *nextNode; - vector::iterator vlsmIter; + typename vector::iterator vlsmIter; treeNode = this; nextNode = treeNode->lft; @@ -955,7 +958,7 @@ { iterator retIter; Ipv4PrefixPatricia *treeNode, *nextNode; - vector::iterator vlsmIter; + typename vector::iterator vlsmIter; treeNode = this; nextNode = treeNode->lft; @@ -1026,7 +1029,7 @@ //-------------------------------------------------------------------------- pair & insert(const value_type & value) { - static pair::iterator,bool> retVal; + static pair::iterator,bool> retVal; retVal = _insert(value); if (retVal.second) { @@ -1043,7 +1046,7 @@ // //-------------------------------------------------------------------------- inline void - visit(void (*visitFunc)(VlsmList::iterator & value, void *), + visit(void (*visitFunc)(typename VlsmList::iterator & value, void *), void *other) { _visit(this->lft,visitFunc,other,33); @@ -1078,7 +1081,7 @@ } bool foundVlsmEntry = false; - VlsmList::iterator vlsmDeleteIter; + typename VlsmList::iterator vlsmDeleteIter; for (vlsmDeleteIter = dnode->vlsmVect.begin(); vlsmDeleteIter != dnode->vlsmVect.end(); vlsmDeleteIter++) { @@ -1231,7 +1234,7 @@ } bool foundVlsmEntry = false; - VlsmList::iterator vlsmDeleteIter; + typename VlsmList::iterator vlsmDeleteIter; for (vlsmDeleteIter = dnode->vlsmVect.begin(); vlsmDeleteIter != dnode->vlsmVect.end(); vlsmDeleteIter++) { @@ -1361,7 +1364,7 @@ uint32_t erase(const iterator & start, const iterator & finish) { vector keyVector; - vector::iterator keyVectorIter; + typename vector::iterator keyVectorIter; iterator iter; uint32_t numErased = 0; @@ -1455,7 +1458,7 @@ { Ipv4PrefixPatricia *p, *t, *x; uint32_t i = 32; - VlsmList::iterator vlsmIter; + typename VlsmList::iterator vlsmIter; p = this; t = lft; @@ -1553,13 +1556,13 @@ //-------------------------------------------------------------------------- inline void _visit(Ipv4PrefixPatricia *head, - void (*visitFunc)(VlsmList::iterator & value, void *), + void (*visitFunc)(typename VlsmList::iterator & value, void *), void *other, uint32_t bitNum) { Ipv4PrefixPatricia *p; Ipv4PrefixPatricia *leftNode; Ipv4PrefixPatricia *rightNode; - VlsmList::iterator vlsmIter; + typename VlsmList::iterator vlsmIter; p = head; leftNode = head->lft;