using System; using cpp11_move_only_valuewrapperNamespace; public class cpp11_move_only_valuewrapper_runme { public static void Main() { Counter.reset_counts(); using (XXX xxx = cpp11_move_only_valuewrapper.createXXX()) { } if (cpp11_move_only_valuewrapper.has_cplusplus11()) // Was (1, 2, 0, 0, 0, 3) before SwigValueWrapper::operator=(T &&) was added. // Was (1, 1, 0, 1, 0, 3) before SwigValueWrapper::operator T&&() was added with new "out" typemaps Counter.check_counts(1, 0, 0, 2, 0, 3); Counter.reset_counts(); using (XXX xxx = cpp11_move_only_valuewrapper.createXXX2()) { } if (cpp11_move_only_valuewrapper.has_cplusplus11()) Counter.check_counts(1, 0, 0, 2, 0, 3); cpp11_move_only_valuewrapper.test1(); cpp11_move_only_valuewrapper.test2(); cpp11_move_only_valuewrapper.test3(); cpp11_move_only_valuewrapper.test4(); cpp11_move_only_valuewrapper.test5(); cpp11_move_only_valuewrapper.test6(); // Tests SwigValueWrapper, std::unique_ptr (SWIG not parsing a type that is move-only) Counter.reset_counts(); SWIGTYPE_p_std__unique_ptrT_XXX_t ptr = cpp11_move_only_valuewrapper.makeUniqueXXX(); cpp11_move_only_valuewrapper.cleanup(ptr); Counter.check_counts(1, 0, 0, 0, 0, 1); } }