#include <iostream>
using namespace std;
template<typename T>
class wrapper {
public:
wrapper(T t) : value(t) {}
operator T() const { return value; }
operator T&() { return value; }
operator const T&() const { return value; }
private:
T value;
};
int main() {
wrapper<int> test = 12;
int example = test;
std::cout << "test: " << test << "\nexample: " << example << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KY2xhc3Mgd3JhcHBlciB7CnB1YmxpYzoKICAgIHdyYXBwZXIoVCB0KSA6IHZhbHVlKHQpIHt9CgogICAgb3BlcmF0b3IgVCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlOyB9CiAgICBvcGVyYXRvciBUJigpIHsgcmV0dXJuIHZhbHVlOyB9CiAgICBvcGVyYXRvciBjb25zdCBUJigpIGNvbnN0IHsgcmV0dXJuIHZhbHVlOyB9CnByaXZhdGU6CiAgICBUIHZhbHVlOwp9OwoKaW50IG1haW4oKSB7Cgl3cmFwcGVyPGludD4gdGVzdCA9IDEyOwoJCglpbnQgZXhhbXBsZSA9IHRlc3Q7CgkKCXN0ZDo6Y291dCA8PCAidGVzdDogIiA8PCB0ZXN0IDw8ICJcbmV4YW1wbGU6ICIgPDwgZXhhbXBsZSA8PCAiXG4iOwoJcmV0dXJuIDA7Cn0=