#include <iostream>
using namespace std;
struct Widget {
Widget(int) { cout << "ctor" << endl; }
Widget(const int&) { cout << "ctor" << endl; }
};
struct Gadget {
Gadget(const int&) { cout << "ctor" << endl; }
Gadget(int&&) { cout << "ctor" << endl; }
};
int main() {
int x = 5;
Widget{x};
Widget{10};
Gadget{x};
Gadget{10};
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFdpZGdldCB7CglXaWRnZXQoaW50KSB7IGNvdXQgPDwgImN0b3IiIDw8IGVuZGw7IH0KCVdpZGdldChjb25zdCBpbnQmKSB7IGNvdXQgPDwgImN0b3IiIDw8IGVuZGw7IH0KfTsKCnN0cnVjdCBHYWRnZXQgewoJR2FkZ2V0KGNvbnN0IGludCYpIHsgY291dCA8PCAiY3RvciIgPDwgZW5kbDsgfQoJR2FkZ2V0KGludCYmKSB7IGNvdXQgPDwgImN0b3IiIDw8IGVuZGw7IH0KfTsKCmludCBtYWluKCkgewoJaW50IHggPSA1OwoJV2lkZ2V0e3h9OwoJV2lkZ2V0ezEwfTsKCUdhZGdldHt4fTsKCUdhZGdldHsxMH07CglyZXR1cm4gMDsKfQ==