#include <iostream>
using namespace std;
struct Demo {
Demo() = delete;
Demo(int _x) : x(_x) { cout << "one-arg constructor" << endl; }
Demo(const Demo& other) : Demo(other.x) {cout << "copy constructor" << endl; }
int x;
};
int main() {
Demo a(5);
Demo b(a);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IERlbW8gewoJRGVtbygpID0gZGVsZXRlOwoJRGVtbyhpbnQgX3gpIDogeChfeCkgeyBjb3V0IDw8ICJvbmUtYXJnIGNvbnN0cnVjdG9yIiA8PCBlbmRsOyB9CglEZW1vKGNvbnN0IERlbW8mIG90aGVyKSA6IERlbW8ob3RoZXIueCkge2NvdXQgPDwgImNvcHkgY29uc3RydWN0b3IiIDw8IGVuZGw7IH0KICAgIGludCB4Owp9OwoKaW50IG1haW4oKSB7CglEZW1vIGEoNSk7CglEZW1vIGIoYSk7CglyZXR1cm4gMDsKfQ==