template struct A { T i; }; template T get_i(const A a1) { return a1.i; } int main() { A a2; a2.i = 10; assert (a2.i == 10); assert(get_i(a2) == 10); get_i(a2); }