Add missing typecheck typemaps for std::auto_ptr and std::unique_ptr

To fix overloading when using these types.
This commit is contained in:
William S Fulton 2022-09-17 10:23:51 +01:00
commit e97181ebc0
59 changed files with 442 additions and 2 deletions

View file

@ -94,6 +94,15 @@ cpp11_std_unique_ptr.takeKlassUniquePtr(null);
cpp11_std_unique_ptr.takeKlassUniquePtr(cpp11_std_unique_ptr.make_null());
checkCount(0);
// overloaded parameters
if (cpp11_std_unique_ptr.overloadTest() != 0)
throw new RuntimeException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(null) != 1)
throw new RuntimeException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(new cpp11_std_unique_ptr.Klass("over")) != 1)
throw new RuntimeException("overloadTest failed");
checkCount(0);
// unique_ptr as output
k1 = cpp11_std_unique_ptr.makeKlassUniquePtr("first");

View file

@ -94,6 +94,15 @@ li_std_auto_ptr.takeKlassAutoPtr(null);
li_std_auto_ptr.takeKlassAutoPtr(li_std_auto_ptr.make_null());
checkCount(0);
// overloaded parameters
if (li_std_auto_ptr.overloadTest() != 0)
throw new RuntimeException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(null) != 1)
throw new RuntimeException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(new li_std_auto_ptr.Klass("over")) != 1)
throw new RuntimeException("overloadTest failed");
checkCount(0);
// auto_ptr as output
k1 = li_std_auto_ptr.makeKlassAutoPtr("first");