#define LLVM_ADT_SETVECTOR_H
#include "llvm/ADT/SmallSet.h"
-#include <vector>
-#include <cassert>
#include <algorithm>
+#include <cassert>
+#include <vector>
namespace llvm {
}
/// @brief Remove an item from the set vector.
- void remove(const value_type& X) {
+ bool remove(const value_type& X) {
if (set_.erase(X)) {
typename vector_type::iterator I =
std::find(vector_.begin(), vector_.end(), X);
assert(I != vector_.end() && "Corrupted SetVector instances!");
vector_.erase(I);
+ return true;
}
+ return false;
}
vector_.pop_back();
}
+ bool operator==(const SetVector &that) const {
+ return vector_ == that.vector_;
+ }
+
+ bool operator!=(const SetVector &that) const {
+ return vector_ != that.vector_;
+ }
+
private:
set_type set_; ///< The set.
vector_type vector_; ///< The vector.