1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <iostream> struct C { C(int n_) : n(n_) {}; C(const C& x) { n = x.n; std::cout << "Copy: " << n << std::endl; } C(C&& x) { n = x.n; std::cout << "Move: " << n << std::endl; } int n; }; template <class X, class Y> struct Pair { X x; Y y; }; template <class X, class Y> Pair<X, Y> make_pair(X&& x, Y&& y) { return Pair<X, Y>{std::forward<X>(x), std::forward<Y>(y)}; } #define MAKE_PAIR(x,y) decltype(make_pair(x,y)){x,y} int main() { auto z1 = Pair<C, C>{C(1),C(2)}; auto z2 = make_pair(C(3),C(4)); auto z3 = MAKE_PAIR(C(5),C(6)); } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEMKewogICAgQyhpbnQgbl8pIDogbihuXykge307CiAgICBDKGNvbnN0IEMmIHgpIHsgbiA9IHgubjsgc3RkOjpjb3V0IDw8ICJDb3B5OiAiIDw8IG4gPDwgc3RkOjplbmRsOyB9CiAgICBDKEMmJiB4KSAgICAgIHsgbiA9IHgubjsgc3RkOjpjb3V0IDw8ICJNb3ZlOiAiIDw8IG4gPDwgc3RkOjplbmRsOyB9CiAgICBpbnQgbjsKfTsKCnRlbXBsYXRlIDxjbGFzcyBYLCBjbGFzcyBZPgpzdHJ1Y3QgUGFpcgp7CiAgICBYIHg7CiAgICBZIHk7Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4KUGFpcjxYLCBZPiBtYWtlX3BhaXIoWCYmIHgsIFkmJiB5KQp7CiAgICByZXR1cm4gUGFpcjxYLCBZPntzdGQ6OmZvcndhcmQ8WD4oeCksIHN0ZDo6Zm9yd2FyZDxZPih5KX07Cn0KCiNkZWZpbmUgTUFLRV9QQUlSKHgseSkgZGVjbHR5cGUobWFrZV9wYWlyKHgseSkpe3gseX0KCmludCBtYWluKCkKewogICAgYXV0byB6MSA9IFBhaXI8QywgQz57QygxKSxDKDIpfTsKICAgIGF1dG8gejIgPSBtYWtlX3BhaXIoQygzKSxDKDQpKTsKICAgIGF1dG8gejMgPSBNQUtFX1BBSVIoQyg1KSxDKDYpKTsKfQo=
-
upload with new input
-
result: Success time: 0s memory: 2928 kB returned value: 0
Move: 3 Move: 4


