[ADT] Provide some helpful static_asserts for using operations of the
[oota-llvm.git] / include / llvm / ADT / MapVector.h
index 405fc43978cfbea86fa499e35729bb722694b28f..7fd1570cbf12edcb2609cc03ea1c8941a1945fe9 100644 (file)
@@ -1,4 +1,4 @@
-//===- llvm/ADT/MapVector.h - Map with deterministic value order *- C++ -*-===//
+//===- llvm/ADT/MapVector.h - Map w/ deterministic value order --*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -17,9 +17,7 @@
 #ifndef LLVM_ADT_MAPVECTOR_H
 #define LLVM_ADT_MAPVECTOR_H
 
-#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/STLExtras.h"
 #include <vector>
 
 namespace llvm {
@@ -97,7 +95,7 @@ public:
     if (Result.second) {
       Vector.push_back(std::make_pair(KV.first, KV.second));
       I = Vector.size() - 1;
-      return std::make_pair(llvm::prior(end()), true);
+      return std::make_pair(std::prev(end()), true);
     }
     return std::make_pair(begin() + I, false);
   }
@@ -119,14 +117,11 @@ public:
                             (Vector.begin() + Pos->second);
   }
 
-  /// \brief Erase entry with the given key.
-  void erase(const KeyT &key) {
-    typename MapType::iterator Pos = Map.find(key);
-    if (Pos == Map.end())
-      return;
-
-    Vector.erase(Vector.begin() + Pos->second);
+  /// \brief Remove the last element from the vector.
+  void pop_back() {
+    typename MapType::iterator Pos = Map.find(Vector.back().first);
     Map.erase(Pos);
+    Vector.pop_back();
   }
 };