friends a = friends.A(2); if (friends.get_val1(a) != 2) error endif if (friends.get_val2(a) != 4) error endif if (friends.get_val3(a) != 6) error endif # nice overload working fine if (friends.get_val1(1,2,3) != 1) error endif b = friends.B(3); # David's case if (friends.mix(a,b) != 5) error endif di = friends.D_d(2); dd = friends.D_d(3.3); # incredible template overloading working just fine if (friends.get_val1(di) != 2) error endif if (friends.get_val1(dd) != 3.3) error endif friends.set(di, 4); friends.set(dd, 1.3); if (friends.get_val1(di) != 4) error endif if (friends.get_val1(dd) != 1.3) error endif