add pop_back to arrays
authorJohn Fremlin VII <john@fb.com>
Mon, 17 Sep 2012 18:14:26 +0000 (11:14 -0700)
committerJordan DeLong <jdelong@fb.com>
Fri, 12 Oct 2012 04:32:39 +0000 (21:32 -0700)
Summary: Add a pop_back() function to dynamic arrays.

Test Plan: - used it

Reviewed By: delong.j@fb.com

FB internal diff: D569440

folly/dynamic-inl.h
folly/dynamic.h

index 58f89710d956fc8200eaa1c9174216ffa5cdf9cd..1942452c5feb627366b4aa9fcfd531ea424f97c4 100644 (file)
@@ -646,6 +646,11 @@ inline void dynamic::push_back(dynamic&& v) {
   array.push_back(std::move(v));
 }
 
+inline void dynamic::pop_back() {
+  auto& array = get<Array>();
+  array.pop_back();
+}
+
 inline std::size_t dynamic::hash() const {
   switch (type()) {
   case OBJECT:
index 3defcfafc8ed7271c955105e81c91a1294f39d46..4f02bd0c000b6139fcfe0954d0c6dd82475651cb 100644 (file)
@@ -415,6 +415,14 @@ public:
   void push_back(dynamic const&);
   void push_back(dynamic&&);
 
+  /*
+   * Remove an element from the back of an array.  If this is not an array,
+   * throws TypeError.
+   *
+   * Does not invalidate iterators.
+   */
+  void pop_back();
+
   /*
    * Get a hash code.  This function is called by a std::hash<>
    * specialization, also.