1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> struct X { private: X& operator=(X&) //no assignment {return *this;} X(X&){} //no copy public: X() {} }; struct Y { X x; }; void f(X&){std::cout <<"one";} void f(X&&){std::cout <<"two";} template <typename T> void g(T&& t) { f(std::forward<T>(t).x); } int main() { Y y; g(y); } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFggewpwcml2YXRlOgpYJiBvcGVyYXRvcj0oWCYpIC8vbm8gYXNzaWdubWVudAp7cmV0dXJuICp0aGlzO30KWChYJil7fSAvL25vIGNvcHkKcHVibGljOgpYKCkge30KfTsKc3RydWN0IFkgeyBYIHg7IH07Cgp2b2lkIGYoWCYpe3N0ZDo6Y291dCA8PCJvbmUiO30Kdm9pZCBmKFgmJil7c3RkOjpjb3V0IDw8InR3byI7fQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgZyhUJiYgdCkgewogIGYoc3RkOjpmb3J3YXJkPFQ+KHQpLngpOwp9CgppbnQgbWFpbigpIHsKICAgIFkgeTsKICAgIGcoeSk7Cn0=
-
upload with new input
-
result: Success time: 0s memory: 2828 kB returned value: 0
one


