template で複数の型を指定
template で複数の型を指定する場合は,カンマで区切って指定すれば良い.
template <class V2, class V3> V2 ToV2 (const V3& v3,const long type) { V2 v2 ; switch (type) { case to_xy : v2 = ::ToXY(v3) ; break ; case to_yz : v2 = ::ToYZ(v3) ; break ; case to_zx : v2 = ::ToZX(v3) ; break ; case to_xz : v2 = ::ToXZ(v3) ; break ; default : v2 = ::ToXY(v3) ; break ; } return v2 ; }
呼び出しは,次の様な感じ.
Vd3 v3 = Vd3(1,2,3) ; Vd2 v2 = ::ToV2<Vd2,Vd3>(v3,to_xy) ;