#include <iostream>
using namespace std;
struct C {
//Obj() { cout << __func__<< endl; }
//~Obj() { cout << __func__<< endl; }
virtual ~C() { cout << __func__<< endl; } // Destructor
C(const C&) = { cout << __func__<< endl; }; // Copy constructor
C(C&&) = { cout << __func__<< endl; }; // Move constructor
C& operator=(const C&) & = { cout << __func__<< endl; }; // Copy assignment operator
C& operator=(C&&) & = { cout << __func__<< endl; }; // Move assignment operator
};
int main()
{
C obj1;
C& obj2 = obj1;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IEMgewogICAgLy9PYmooKSB7IGNvdXQgPDwgX19mdW5jX188PCBlbmRsOyB9CiAgICAvL35PYmooKSB7IGNvdXQgPDwgX19mdW5jX188PCBlbmRsOyB9CiAgICB2aXJ0dWFsIH5DKCkgeyBjb3V0IDw8IF9fZnVuY19fPDwgZW5kbDsgfSAgICAgICAgICAgICAgICAgICAgIC8vIERlc3RydWN0b3IKICAgIEMoY29uc3QgQyYpID0geyBjb3V0IDw8IF9fZnVuY19fPDwgZW5kbDsgfTsgICAgICAgICAgICAgICAvLyBDb3B5IGNvbnN0cnVjdG9yCiAgICBDKEMmJikgPSB7IGNvdXQgPDwgX19mdW5jX188PCBlbmRsOyB9OyAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBjb25zdHJ1Y3RvcgogICAgQyYgb3BlcmF0b3I9KGNvbnN0IEMmKSAmID0geyBjb3V0IDw8IF9fZnVuY19fPDwgZW5kbDsgfTsgIC8vIENvcHkgYXNzaWdubWVudCBvcGVyYXRvcgogICAgQyYgb3BlcmF0b3I9KEMmJikgJiA9IHsgY291dCA8PCBfX2Z1bmNfXzw8IGVuZGw7IH07ICAgICAgIC8vIE1vdmUgYXNzaWdubWVudCBvcGVyYXRvcgp9OwppbnQgbWFpbigpCnsKICAgIEMgb2JqMTsKICAgIEMmIG9iajIgPSBvYmoxOwoKICAgIHJldHVybiAwOwp9Cg==