diff --git a/src/hb-vector.hh b/src/hb-vector.hh
index d3a5dff..44c174d 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -31,8 +31,6 @@
 #include "hb-array.hh"
 #include "hb-null.hh"
 
-#include <initializer_list>
-
 
 template <typename Type>
 struct hb_vector_t
@@ -41,14 +39,9 @@
   static constexpr unsigned item_size = hb_static_size (Type);
 
   hb_vector_t ()  { init (); }
-  hb_vector_t (std::initializer_list<Type> l) : hb_vector_t ()
+  hb_vector_t (const hb_vector_t &o)
   {
-    alloc (l.size ());
-    for (auto&& i : l)
-      push (i);
-  }
-  hb_vector_t (const hb_vector_t &o) : hb_vector_t ()
-  {
+    init ();
     alloc (o.length);
     hb_copy (o, *this);
   }
@@ -309,10 +302,6 @@
 template <typename Type>
 struct hb_sorted_vector_t : hb_vector_t<Type>
 {
-  hb_sorted_vector_t () : hb_vector_t<Type> () {}
-  hb_sorted_vector_t (std::initializer_list<Type> l) : hb_vector_t<Type> (l) {}
-  hb_sorted_vector_t (hb_sorted_vector_t& o) : hb_vector_t<Type> (o) {}
-
   hb_sorted_array_t<      Type> as_array ()       { return hb_sorted_array (this->arrayZ, this->length); }
   hb_sorted_array_t<const Type> as_array () const { return hb_sorted_array (this->arrayZ, this->length); }
 
diff --git a/src/test-algs.cc b/src/test-algs.cc
index 0f6b1fb..f8b8ff6 100644
--- a/src/test-algs.cc
+++ b/src/test-algs.cc
@@ -91,25 +91,5 @@
   assert (++hb_inc (x) == 3);
   assert (x == 3);
 
-  {
-    hb_vector_t<int> v1 {1, 2, 3};
-    hb_vector_t<int> v2 {4, 5};
-    hb_swap (v1, v2);
-    assert (v1.length == 2);
-    assert (v1[0] == 4);
-    assert (v2.length == 3);
-    assert (v2[2] == 3);
-  }
-
-  {
-    hb_sorted_vector_t<int> v1 {1, 2, 3};
-    hb_sorted_vector_t<int> v2 {4, 5};
-    hb_swap (v1, v2);
-    assert (v1.length == 2);
-    assert (v1[0] == 4);
-    assert (v2.length == 3);
-    assert (v2[2] == 3);
-  }
-
   return 0;
 }
