4

*行列クラスの演算子をオーバーロードする関数テンプレートをいくつか作成しています。doubleタイプとの行列で多くの作業を行いcomplex<double>ます。正しい型を返す単一のテンプレート関数を作成することは可能ですか? 例えば:

template<class T, class U, class V>
matrix<V> operator*(const T a, const matrix<U> A)
{
    matrix<V> B(A.size(1),A.size(2));
    for(int ii = 0; ii < B.size(1); ii++)
    {
        for(int jj = 0; jj < B.size(2); jj++)
        {
            B(ii,jj) = a*A(ii,jj);
        }
    }
    return B;
}

V戻り値の型を の自然な結果によって決定したいと思いT*Uます。これは可能ですか?

編集:

私が尋ねたフォローアップの質問には、ここで適用できる追加情報を提供する回答がありました。

4

1 に答える 1