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


  にほんブログ村 IT技術ブログへ



コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください