diff --git a/Examples/test-suite/cpp11_move_only.i b/Examples/test-suite/cpp11_move_only.i index 7c91933c4..f97d7090e 100644 --- a/Examples/test-suite/cpp11_move_only.i +++ b/Examples/test-suite/cpp11_move_only.i @@ -27,6 +27,8 @@ struct MoveOnly { static MoveOnly create() { return MoveOnly(111); } // static const MoveOnly createConst() { return MoveOnly(111); } // not supported by default + + // static void take(MoveOnly mo) { if (debug) cout << "take(MoveOnly)" << " " << &mo << endl; } }; %} @@ -48,5 +50,7 @@ struct MovableCopyable { static MovableCopyable create() { return MovableCopyable(111); } static const MovableCopyable createConst() { return MovableCopyable(111); } + + static void take(MovableCopyable mc) { if (debug) cout << "take(MovableCopyable)" << " " << &mc << endl; } }; %} diff --git a/Examples/test-suite/csharp/cpp11_move_only_runme.cs b/Examples/test-suite/csharp/cpp11_move_only_runme.cs index 57cb7aa18..4bd291109 100644 --- a/Examples/test-suite/csharp/cpp11_move_only_runme.cs +++ b/Examples/test-suite/csharp/cpp11_move_only_runme.cs @@ -4,6 +4,8 @@ using cpp11_move_onlyNamespace; public class cpp11_move_only_runme { public static void Main() { + + // Output Counter.reset_counts(); using (MoveOnly mo = MoveOnly.create()) { } @@ -19,5 +21,14 @@ public class cpp11_move_only_runme { using (MovableCopyable mo = MovableCopyable.createConst()) { } Counter.check_counts(2, 1, 1, 0, 0, 3); + + // Input + Counter.reset_counts(); + using (MovableCopyable mo = new MovableCopyable(222)) { + Counter.check_counts(1, 0, 0, 0, 0, 0); + MovableCopyable.take(mo); + Counter.check_counts(2, 1, 1, 0, 0, 2); + } + Counter.check_counts(2, 1, 1, 0, 0, 3); } } diff --git a/Examples/test-suite/java/cpp11_move_only_runme.java b/Examples/test-suite/java/cpp11_move_only_runme.java index b652634e5..e1d7cf180 100644 --- a/Examples/test-suite/java/cpp11_move_only_runme.java +++ b/Examples/test-suite/java/cpp11_move_only_runme.java @@ -14,6 +14,7 @@ public class cpp11_move_only_runme { public static void main(String argv[]) { + // Output { Counter.reset_counts(); MoveOnly mo = MoveOnly.create(); @@ -35,5 +36,16 @@ public class cpp11_move_only_runme { mo.delete(); Counter.check_counts(2, 1, 1, 0, 0, 3); } + + // Input + { + Counter.reset_counts(); + MovableCopyable mo = new MovableCopyable(222); + Counter.check_counts(1, 0, 0, 0, 0, 0); + MovableCopyable.take(mo); + Counter.check_counts(2, 1, 1, 0, 0, 2); + mo.delete(); + Counter.check_counts(2, 1, 1, 0, 0, 3); + } } } diff --git a/Examples/test-suite/python/cpp11_move_only_runme.py b/Examples/test-suite/python/cpp11_move_only_runme.py index 1c3183327..1e1defcdc 100644 --- a/Examples/test-suite/python/cpp11_move_only_runme.py +++ b/Examples/test-suite/python/cpp11_move_only_runme.py @@ -1,5 +1,6 @@ from cpp11_move_only import * +# Output Counter.reset_counts() mo = MoveOnly.create() del mo @@ -15,3 +16,12 @@ Counter.reset_counts() mo = MovableCopyable.createConst() del mo Counter.check_counts(2, 1, 1, 0, 0, 3) + +# Input +Counter.reset_counts() +mo = MovableCopyable(222) +Counter.check_counts(1, 0, 0, 0, 0, 0) +MovableCopyable.take(mo) +Counter.check_counts(2, 1, 1, 0, 0, 2) +del mo +Counter.check_counts(2, 1, 1, 0, 0, 3)