diff --git a/src/cxxTemplates/resourceLib.h b/src/cxxTemplates/resourceLib.h index 3ecc23ae0..f883926cc 100644 --- a/src/cxxTemplates/resourceLib.h +++ b/src/cxxTemplates/resourceLib.h @@ -29,6 +29,9 @@ * * History * $Log$ + * Revision 1.10 1997/06/13 09:21:51 jhill + * fixed compiler compatibility problems + * * Revision 1.9 1997/04/23 17:11:15 jhill * stringId::T[] => stringIdFastHash[] * @@ -69,7 +72,9 @@ #include #include #include +#ifndef assert // allow use of epicsAssert.h #include +#endif #include "tsSLList.h" #include "shareLib.h" diff --git a/src/cxxTemplates/test/tsBTreeTest.cc b/src/cxxTemplates/test/tsBTreeTest.cc index 51760a9f2..845575f8f 100644 --- a/src/cxxTemplates/test/tsBTreeTest.cc +++ b/src/cxxTemplates/test/tsBTreeTest.cc @@ -47,30 +47,30 @@ main () tree.traverse(A::show); - assert(!tree.remove(a6)); + assert(tree.remove(a6)==tsbtrrNotFound); tree.insert(a6); - assert(tree.remove(a6)); - assert(tree.remove(a5)); - assert(!tree.remove(a5)); + assert(tree.remove(a6)==tsbtrrFound); + assert(tree.remove(a5)==tsbtrrFound); + assert(tree.remove(a5)==tsbtrrNotFound); assert(!tree.verify(a5)); assert(tree.verify(a4)); - assert(tree.remove(a0)); + assert(tree.remove(a0)==tsbtrrFound); assert(!tree.verify(a0)); - assert(!tree.remove(a0)); + assert(tree.remove(a0)==tsbtrrNotFound); tree.insert(a5); assert(tree.verify(a5)); assert(tree.verify(a2)); - assert(tree.remove(a2)); + assert(tree.remove(a2)==tsbtrrFound); assert(!tree.verify(a2)); - assert(!tree.remove(a2)); + assert(tree.remove(a2)==tsbtrrNotFound); assert(tree.verify(a5)); - assert(tree.remove(a5)); - assert(!tree.remove(a5)); - assert(!tree.remove(a0)); - assert(tree.remove(a4)); - assert(tree.remove(a3)); - assert(!tree.remove(a4)); - assert(tree.remove(a1)); + assert(tree.remove(a5)==tsbtrrFound); + assert(tree.remove(a5)==tsbtrrNotFound); + assert(tree.remove(a0)==tsbtrrNotFound); + assert(tree.remove(a4)==tsbtrrFound); + assert(tree.remove(a3)==tsbtrrFound); + assert(tree.remove(a4)==tsbtrrNotFound); + assert(tree.remove(a1)==tsbtrrFound); tree.traverse(A::show); diff --git a/src/cxxTemplates/tsBTree.h b/src/cxxTemplates/tsBTree.h index 575028a89..27bad465a 100644 --- a/src/cxxTemplates/tsBTree.h +++ b/src/cxxTemplates/tsBTree.h @@ -1,16 +1,24 @@ +#ifndef assert // allow use of epicsAssert.h #include +#endif // // tsBTreeRMRet // +enum tsbtRR {tsbtrrNotFound, tsbtrrFound}; template class tsBTreeRMRet { public: - tsBTreeRMRet (unsigned foundItIn, T *pNewSegIn) : + tsBTreeRMRet (tsbtRR foundItIn, T *pNewSegIn) : foundIt(foundItIn), pNewSeg(pNewSegIn) {} - const unsigned foundIt; + operator tsbtRR () + { + return this->foundIt; + } + + const tsbtRR foundIt; T * const pNewSeg; }; @@ -109,10 +117,10 @@ private: self.tsBTreeNode::pRight; } } - return tsBTreeRMRet(1u, self.tsBTreeNode::pLeft); // found it + return tsBTreeRMRet(tsbtrrFound, self.tsBTreeNode::pLeft); // found it } else { - return tsBTreeRMRet(1u, self.tsBTreeNode::pRight); // found it + return tsBTreeRMRet(tsbtrrFound, self.tsBTreeNode::pRight); // found it } } @@ -121,23 +129,23 @@ private: if (self.tsBTreeNode::pLeft) { tsBTreeRMRet ret = tsBTreeNode:: remove(*self.tsBTreeNode::pLeft, item); - if (ret.foundIt) { + if (ret.foundIt==tsbtrrFound) { self.tsBTreeNode::pLeft= ret.pNewSeg; - return tsBTreeRMRet(1u,&self); // TRUE - found it + return tsBTreeRMRet(tsbtrrFound,&self); // TRUE - found it } } - return tsBTreeRMRet(0u, 0u); // not found + return tsBTreeRMRet(tsbtrrNotFound, 0u); // not found } else if(result==btGreater) { if (self.tsBTreeNode::pRight) { tsBTreeRMRet ret = tsBTreeNode:: remove(*self.tsBTreeNode::pRight, item); - if (ret.foundIt) { + if (ret.foundIt==tsbtrrFound) { self.tsBTreeNode::pRight = ret.pNewSeg; - return tsBTreeRMRet(1u,&self); // TRUE - found it + return tsBTreeRMRet(tsbtrrFound,&self); // TRUE - found it } } - return tsBTreeRMRet(0u, 0u); // not found + return tsBTreeRMRet(tsbtrrNotFound, 0u); // not found } else { assert(0); diff --git a/src/libCom/cxxTemplates/resourceLib.h b/src/libCom/cxxTemplates/resourceLib.h index 3ecc23ae0..f883926cc 100644 --- a/src/libCom/cxxTemplates/resourceLib.h +++ b/src/libCom/cxxTemplates/resourceLib.h @@ -29,6 +29,9 @@ * * History * $Log$ + * Revision 1.10 1997/06/13 09:21:51 jhill + * fixed compiler compatibility problems + * * Revision 1.9 1997/04/23 17:11:15 jhill * stringId::T[] => stringIdFastHash[] * @@ -69,7 +72,9 @@ #include #include #include +#ifndef assert // allow use of epicsAssert.h #include +#endif #include "tsSLList.h" #include "shareLib.h" diff --git a/src/libCom/cxxTemplates/test/tsBTreeTest.cc b/src/libCom/cxxTemplates/test/tsBTreeTest.cc index 51760a9f2..845575f8f 100644 --- a/src/libCom/cxxTemplates/test/tsBTreeTest.cc +++ b/src/libCom/cxxTemplates/test/tsBTreeTest.cc @@ -47,30 +47,30 @@ main () tree.traverse(A::show); - assert(!tree.remove(a6)); + assert(tree.remove(a6)==tsbtrrNotFound); tree.insert(a6); - assert(tree.remove(a6)); - assert(tree.remove(a5)); - assert(!tree.remove(a5)); + assert(tree.remove(a6)==tsbtrrFound); + assert(tree.remove(a5)==tsbtrrFound); + assert(tree.remove(a5)==tsbtrrNotFound); assert(!tree.verify(a5)); assert(tree.verify(a4)); - assert(tree.remove(a0)); + assert(tree.remove(a0)==tsbtrrFound); assert(!tree.verify(a0)); - assert(!tree.remove(a0)); + assert(tree.remove(a0)==tsbtrrNotFound); tree.insert(a5); assert(tree.verify(a5)); assert(tree.verify(a2)); - assert(tree.remove(a2)); + assert(tree.remove(a2)==tsbtrrFound); assert(!tree.verify(a2)); - assert(!tree.remove(a2)); + assert(tree.remove(a2)==tsbtrrNotFound); assert(tree.verify(a5)); - assert(tree.remove(a5)); - assert(!tree.remove(a5)); - assert(!tree.remove(a0)); - assert(tree.remove(a4)); - assert(tree.remove(a3)); - assert(!tree.remove(a4)); - assert(tree.remove(a1)); + assert(tree.remove(a5)==tsbtrrFound); + assert(tree.remove(a5)==tsbtrrNotFound); + assert(tree.remove(a0)==tsbtrrNotFound); + assert(tree.remove(a4)==tsbtrrFound); + assert(tree.remove(a3)==tsbtrrFound); + assert(tree.remove(a4)==tsbtrrNotFound); + assert(tree.remove(a1)==tsbtrrFound); tree.traverse(A::show); diff --git a/src/libCom/cxxTemplates/tsBTree.h b/src/libCom/cxxTemplates/tsBTree.h index 575028a89..27bad465a 100644 --- a/src/libCom/cxxTemplates/tsBTree.h +++ b/src/libCom/cxxTemplates/tsBTree.h @@ -1,16 +1,24 @@ +#ifndef assert // allow use of epicsAssert.h #include +#endif // // tsBTreeRMRet // +enum tsbtRR {tsbtrrNotFound, tsbtrrFound}; template class tsBTreeRMRet { public: - tsBTreeRMRet (unsigned foundItIn, T *pNewSegIn) : + tsBTreeRMRet (tsbtRR foundItIn, T *pNewSegIn) : foundIt(foundItIn), pNewSeg(pNewSegIn) {} - const unsigned foundIt; + operator tsbtRR () + { + return this->foundIt; + } + + const tsbtRR foundIt; T * const pNewSeg; }; @@ -109,10 +117,10 @@ private: self.tsBTreeNode::pRight; } } - return tsBTreeRMRet(1u, self.tsBTreeNode::pLeft); // found it + return tsBTreeRMRet(tsbtrrFound, self.tsBTreeNode::pLeft); // found it } else { - return tsBTreeRMRet(1u, self.tsBTreeNode::pRight); // found it + return tsBTreeRMRet(tsbtrrFound, self.tsBTreeNode::pRight); // found it } } @@ -121,23 +129,23 @@ private: if (self.tsBTreeNode::pLeft) { tsBTreeRMRet ret = tsBTreeNode:: remove(*self.tsBTreeNode::pLeft, item); - if (ret.foundIt) { + if (ret.foundIt==tsbtrrFound) { self.tsBTreeNode::pLeft= ret.pNewSeg; - return tsBTreeRMRet(1u,&self); // TRUE - found it + return tsBTreeRMRet(tsbtrrFound,&self); // TRUE - found it } } - return tsBTreeRMRet(0u, 0u); // not found + return tsBTreeRMRet(tsbtrrNotFound, 0u); // not found } else if(result==btGreater) { if (self.tsBTreeNode::pRight) { tsBTreeRMRet ret = tsBTreeNode:: remove(*self.tsBTreeNode::pRight, item); - if (ret.foundIt) { + if (ret.foundIt==tsbtrrFound) { self.tsBTreeNode::pRight = ret.pNewSeg; - return tsBTreeRMRet(1u,&self); // TRUE - found it + return tsBTreeRMRet(tsbtrrFound,&self); // TRUE - found it } } - return tsBTreeRMRet(0u, 0u); // not found + return tsBTreeRMRet(tsbtrrNotFound, 0u); // not found } else { assert(0);