/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/csharp/cpp11_move_only_runme.cs
64 строки
2 KB
William S Fulton
Add missing use of move constructor
07 мар 2024, 00:46
07 мар 2024, 00:46
9441c95
Код
Авторство
О чём код?
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); } }