4

非常に基本的なテンプレート化された配列クラスのコピー コンストラクターを部分的に特殊化しようとしています。

template<typename D, bool destruct = false> class SimpleArray
{
 SimpleArray(const SimpleArray& other)
 {
  //stuff
 }

 //various other things
}

template<typename D> SimpleArray<D, true>::SimpleArray(const SimpleArray& other)
{
 //different stuff
}

しかし、私はこのエラーが発生します:

'SimpleArray<D,destruct>::{ctor}' : unable to match function definition to an existing declaration

しかし、私は確かに関数を宣言しました...私はconst SimpleArray<D, true>& other無駄に部分的な特殊化のパラメータを変更しようとしました。VC++ 11 は部分的に特殊化された関数名自体を強調表示していないため、問題は何らかの形で間違った名前であると推測しています。

4

2 に答える 2