#include <iostream>
using namespace std;
struct X
{
X(/*const*/ X&) { cout << "copy" << endl; }
X(X&&) { cout << "move" << endl; }
template<class T> X(T&&) { cout << "tmpl" << endl; }
};
int main()
{
X x1 = 42;
X x2(x1);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBYCnsKICAgIFgoLypjb25zdCovIFgmKSAgICAgICAgICAgICAgeyBjb3V0IDw8ICJjb3B5IiA8PCBlbmRsOyB9CiAgICBYKFgmJikgICAgICAgICAgICAgICAgICAgeyBjb3V0IDw8ICJtb3ZlIiA8PCBlbmRsOyB9CgogICAgdGVtcGxhdGU8Y2xhc3MgVD4gWChUJiYpIHsgY291dCA8PCAidG1wbCIgPDwgZW5kbDsgfQp9OwoKaW50IG1haW4oKQp7CiAgICBYIHgxID0gNDI7CiAgICBYIHgyKHgxKTsKfQ==