マトリックス クラスで問題が発生しましたが、解決策が見つかりません。
Matrix = ROWSxCOLUMNS
Let A be a 3x4 matrix
Let B be a 4x5 matrix
操作AxB(A の列が B の行と一致する場合にのみ定義される) は、 になり3x5 matrixます。まさにそれを行うテンプレート化されたクラスを作成したかったのです。
Matrix<int,3,4> A;
Matrix<int,4,5> B;
Matrix<int,3,5> matrix = A*B;
私のコード:
    template <class T, unsigned int ROWS, unsigned int COLUMNS>
    class Matrix {
      public:
        /* blabla */
        const Matrix<T, ROWS, /* ? */ >&
          operator*(const Matrix<T, COLUMNS, /* ? */ >& matrix) const
        {
          /* multiplication */
        }
        /* blabla */
    };
/* ? */セクションに何を挿入すればよいかわかりません。コンパイラが符号なし整数値を受け入れるようにする方法はありますか? 別の方法でコードを書き直す必要がありますか?
注: 私はこのクラスを学術目的で作成しています。これを行うライブラリが既に存在するかどうかは気にしません。