次の方法で共有


コンパイラ エラー C2940

'class' : ローカル typedef として再定義された type-class-id

ローカル typedefとしてジェネリック クラスまたはテンプレート クラスを使用することはできません。

このエラーは、Visual Studio 2022 以降のバージョンでは廃止されています。

次の例では C2940 が生成されます。

// C2940.cpp
template<class T>
struct TC {};
int main() {
   typedef int TC<int>;   // C2940
   typedef int TC;   // OK
}

C2940 は、ジェネリックを使用する場合にも発生することがあります。

// C2940b.cpp
// compile with: /clr
generic<class T>
ref struct GC { };

int main() {
   typedef int GC<int>;   // C2940
   typedef int GC;
}