template <size_t M, size_t N, typename T>
class Matrix
{
public:
Matrix<M, N, T> operator +(const Matrix<M, N, T>& B) const;
template <size_t P> Matrix<M,P,T> operator*(const Matrix<N, P, T>& B) const;
template <typename T2> operator T2() const;
private:
T __x[M][N];
};
ボディはうまく書いてあり、すべてうまくいきます。私は以下のように二つの行列を定義する場合:私は以下のようなマトリックスクラスを持っています:
Matrix < 10, 10, int> m1;
Matrix < 10, 10, float> m2;
m1 + m2; // OK
m1 * m2; // error: no match for 'operator*' in 'm1 * m2'
を暗黙的キャストがそこに行っているため、さらには、うまく動作しますが、異なる値型の乗算のために、エラーが発生します。
error: no match for 'operator*' in 'm1 * m2'
これはPHPまたはMySQLの質問の仕組みですか? – GordonM
私はいくつかのクラスのPHPやwtfを残しましたか? –
エラーメッセージ全体を投稿できますか? –