Test returning opaque types in CxxVector from C to Rust
diff --git a/tests/ffi/lib.rs b/tests/ffi/lib.rs
index a16775b..d6a94e4 100644
--- a/tests/ffi/lib.rs
+++ b/tests/ffi/lib.rs
@@ -30,6 +30,7 @@
         fn c_return_unique_ptr_vector_u8() -> UniquePtr<CxxVector<u8>>;
         fn c_return_unique_ptr_vector_f64() -> UniquePtr<CxxVector<f64>>;
         fn c_return_unique_ptr_vector_shared() -> UniquePtr<CxxVector<Shared>>;
+        fn c_return_unique_ptr_vector_opaque() -> UniquePtr<CxxVector<C>>;
 
         fn c_take_primitive(n: usize);
         fn c_take_shared(shared: Shared);
diff --git a/tests/ffi/tests.cc b/tests/ffi/tests.cc
index 502be05..372641c 100644
--- a/tests/ffi/tests.cc
+++ b/tests/ffi/tests.cc
@@ -83,6 +83,10 @@
   return vec;
 }
 
+std::unique_ptr<std::vector<C>> c_return_unique_ptr_vector_opaque() {
+  return std::unique_ptr<std::vector<C>>(new std::vector<C>());
+}
+
 void c_take_primitive(size_t n) {
   if (n == 2020) {
     cxx_test_suite_set_correct();
diff --git a/tests/ffi/tests.h b/tests/ffi/tests.h
index e1e163d..ed07ce6 100644
--- a/tests/ffi/tests.h
+++ b/tests/ffi/tests.h
@@ -32,6 +32,7 @@
 std::unique_ptr<std::vector<uint8_t>> c_return_unique_ptr_vector_u8();
 std::unique_ptr<std::vector<double>> c_return_unique_ptr_vector_f64();
 std::unique_ptr<std::vector<Shared>> c_return_unique_ptr_vector_shared();
+std::unique_ptr<std::vector<C>> c_return_unique_ptr_vector_opaque();
 
 void c_take_primitive(size_t n);
 void c_take_shared(Shared shared);