diff --git a/src/hb-vector.hh b/src/hb-vector.hh
index 44c174d..d3a5dff 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -31,6 +31,8 @@
 #include "hb-array.hh"
 #include "hb-null.hh"
 
+#include <initializer_list>
+
 
 template <typename Type>
 struct hb_vector_t
@@ -39,9 +41,14 @@
   static constexpr unsigned item_size = hb_static_size (Type);
 
   hb_vector_t ()  { init (); }
-  hb_vector_t (const hb_vector_t &o)
+  hb_vector_t (std::initializer_list<Type> l) : hb_vector_t ()
   {
-    init ();
+    alloc (l.size ());
+    for (auto&& i : l)
+      push (i);
+  }
+  hb_vector_t (const hb_vector_t &o) : hb_vector_t ()
+  {
     alloc (o.length);
     hb_copy (o, *this);
   }
@@ -302,6 +309,10 @@
 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 f8b8ff6..0f6b1fb 100644
--- a/src/test-algs.cc
+++ b/src/test-algs.cc
@@ -91,5 +91,25 @@
   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;
 }
