#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;
}