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 33 34 35 | #include <iostream> using namespace std; struct A { int x; virtual int f() { return 1; } }; struct B : public A { int y; int f() { return 2; } }; template <class T> void foo() { B b; T a=b; cout << a.f() << endl; } template <class T> void bar() { B b; b.x=0; T a=b; a.x=2; cout << b.x << endl; } int main() { cout << "nonref\n"; foo<A>(); bar<A>(); cout << "ref\n"; foo<A&>(); bar<A&>(); return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgeyBpbnQgeDsgdmlydHVhbCBpbnQgZigpIHsgcmV0dXJuIDE7IH0gfTsKc3RydWN0IEIgOiBwdWJsaWMgQSB7IGludCB5OyBpbnQgZigpIHsgcmV0dXJuIDI7IH0gfTsKCnRlbXBsYXRlIDxjbGFzcyBUPgp2b2lkIGZvbygpCnsKICBCIGI7CiAgVCBhPWI7CiAgY291dCA8PCBhLmYoKSA8PCBlbmRsOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4Kdm9pZCBiYXIoKQp7CiAgQiBiOwogIGIueD0wOwogIFQgYT1iOwogIGEueD0yOwogIGNvdXQgPDwgYi54IDw8IGVuZGw7Cn0KCmludCBtYWluKCkKewogIGNvdXQgPDwgIm5vbnJlZlxuIjsKICBmb288QT4oKTsKICBiYXI8QT4oKTsKICBjb3V0IDw8ICJyZWZcbiI7CiAgZm9vPEEmPigpOwogIGJhcjxBJj4oKTsKICByZXR1cm4gMDsKfQo=
-
upload with new input
-
result: Success time: 0s memory: 2724 kB returned value: 0
nonref 1 0 ref 2 2


