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) ;
