| using System; | |
| using cpp11_move_onlyNamespace; | |
| public class cpp11_move_only_runme { | |
| public static void Main() { | |
| // Output | |
| Counter.reset_counts(); | |
| using (MoveOnly mo = MoveOnly.create()) { | |
| } | |
| Counter.check_counts(1, 0, 0, 2, 0, 3); | |
| Counter.reset_counts(); | |
| using (MovableCopyable mc = MovableCopyable.create()) { | |
| } | |
| Counter.check_counts(2, 1, 0, 0, 1, 3); | |
| // Move semantics not used | |
| Counter.reset_counts(); | |
| using (MovableCopyable mc = MovableCopyable.createConst()) { | |
| } | |
| Counter.check_counts(2, 1, 1, 0, 0, 3); | |
| // Input static method | |
| Counter.reset_counts(); | |
| using (MovableCopyable mc = new MovableCopyable(222)) { | |
| Counter.check_counts(1, 0, 0, 0, 0, 0); | |
| MovableCopyable.take(mc); | |
| Counter.check_counts(2, 0, 1, 1, 0, 2); | |
| } | |
| Counter.check_counts(2, 0, 1, 1, 0, 3); | |
| // Input global function | |
| Counter.reset_counts(); | |
| using (MovableCopyable mc = new MovableCopyable(333)) { | |
| Counter.check_counts(1, 0, 0, 0, 0, 0); | |
| cpp11_move_only.global_take_movable_copyable(mc); | |
| Counter.check_counts(2, 0, 1, 1, 0, 2); | |
| } | |
| Counter.check_counts(2, 0, 1, 1, 0, 3); | |
| // Input instance method | |
| Counter.reset_counts(); | |
| using (InstanceMethodsTester imt = new InstanceMethodsTester()) { | |
| using (MovableCopyable mc = new MovableCopyable(444)) { | |
| Counter.check_counts(1, 0, 0, 0, 0, 0); | |
| imt.instance_take_movable_copyable(mc); | |
| Counter.check_counts(2, 0, 1, 1, 0, 2); | |
| } | |
| Counter.check_counts(2, 0, 1, 1, 0, 3); | |
| } | |
| // Input constructor | |
| Counter.reset_counts(); | |
| using (MovableCopyable mc = new MovableCopyable(555)) { | |
| Counter.check_counts(1, 0, 0, 0, 0, 0); | |
| using (ConstructorTester ct = new ConstructorTester(mc)) { | |
| Counter.check_counts(2, 0, 1, 1, 0, 2); | |
| } | |
| Counter.check_counts(2, 0, 1, 1, 0, 2); | |
| } | |
| Counter.check_counts(2, 0, 1, 1, 0, 3); | |
| } | |
| } |