template <typename T>
struct Identity
{
typedef T type;
};
template <typename T> void assign(T *a, T b) { *a = b; }
int main() {
float i;
assign<float>(&i, 2);
}
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBJZGVudGl0eQp7CiAgICB0eXBlZGVmIFQgdHlwZTsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFzc2lnbihUICphLCBUIGIpIHsgKmEgPSBiOyB9CgppbnQgbWFpbigpIHsKICAgIGZsb2F0IGk7CiAgICBhc3NpZ248ZmxvYXQ+KCZpLCAyKTsKfQ==