0
template <typename T, unsigned D>
class Matrix
{
 public:
  T Determinant( void ) const;

  T m[D][D];
};


template <typename T>
T Matrix<T, 2>::Determinant( void ) const
{
  return m[0][0] * m[1][1] - m[1][0] * m[0][1];
}

こんにちは、フォーラムです。私はこのコードを持っていますが、エラーが発生します:

1>c:\dropbox\projects\math\matrix.h(319): error C3860: template argument list following class template name must list parameters in the order used in template parameter list
1>c:\dropbox\projects\math\matrix.h(319): error C2976: 'Math::Matrix<T,D>' : too few template arguments

何が悪いのかわかりません。助けてください。

4

2 に答える 2

0

これは、 C++ テンプレートの部分特殊化メンバー関数の重複の可能性があります

そこで述べたように、メソッドを特殊化するのではなく、クラス自体を特殊化します。

于 2013-10-27T06:39:08.443 に答える