braintag

公開してしまう備忘録

VC6でテンプレート

VC6にてテンプレート関数を作っていたところ、どうしてかerror C2893:になりコンパイルが通らない。

class a
{
      template <class Array> int  hoge(Array **array);
};
template <class Array>  int a::hoge(Array **array)
{
}

いろいろ調べたところ、クラスの定義に関数を埋め込んでやらないといけないVC6の腐った仕様のようだ。
gccでは問題ない。
クラスの定義に関数のコードを埋め込むと、可読性が著しく落ちるので、テンプレートはあきらめた。