template struct point { T x; T y; }; point p1{1.0, 2.0}; point p2{1, 2};