X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FSetVector.h;h=fab133af4c03b1b49b4ae033278bb0d44b6b70dd;hb=1c7a666fcef22e75dc675b06444f5a894f54d7be;hp=ec3fd536b317261bf996dc96d38c1a51bee6bff5;hpb=337cde0d5ac8c28793b305d17c1ccfb5228eab11;p=oota-llvm.git diff --git a/include/llvm/ADT/SetVector.h b/include/llvm/ADT/SetVector.h index ec3fd536b31..fab133af4c0 100644 --- a/include/llvm/ADT/SetVector.h +++ b/include/llvm/ADT/SetVector.h @@ -2,8 +2,8 @@ // // The LLVM Compiler Infrastructure // -// This file was developed by Reid Spencer and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -21,9 +21,9 @@ #define LLVM_ADT_SETVECTOR_H #include "llvm/ADT/SmallSet.h" -#include -#include #include +#include +#include namespace llvm { @@ -32,7 +32,7 @@ namespace llvm { /// order of insertion. /// @brief A vector that has set insertion semantics. template , - typename Set = std::set > + typename Set = SmallSet > class SetVector { public: typedef T value_type; @@ -99,7 +99,7 @@ public: /// @returns true iff the element was inserted into the SetVector. /// @brief Insert a new element into the SetVector. bool insert(const value_type &X) { - bool result = set_.insert(X).second; + bool result = set_.insert(X); if (result) vector_.push_back(X); return result; @@ -109,13 +109,13 @@ public: template void insert(It Start, It End) { for (; Start != End; ++Start) - if (set_.insert(*Start).second) + if (set_.insert(*Start)) vector_.push_back(*Start); } /// @brief Remove an item from the set vector. void remove(const value_type& X) { - if (0 < set_.erase(X)) { + if (set_.erase(X)) { typename vector_type::iterator I = std::find(vector_.begin(), vector_.end(), X); assert(I != vector_.end() && "Corrupted SetVector instances!"); @@ -152,8 +152,9 @@ private: /// a certain size. template class SmallSetVector : public SetVector, SmallSet > { +public: SmallSetVector() {} - + /// @brief Initialize a SmallSetVector with a range of elements template SmallSetVector(It Start, It End) {