다음을 통해 공유


컴파일러 오류 C2931

'class': type-class-id가 'identifier'의 멤버 함수로 다시 정의됨

제네릭 또는 템플릿 클래스를 다른 클래스의 멤버 함수로 사용할 수 없습니다.

이 오류는 Visual Studio 2022 이상 버전에서 사용되지 않습니다.

중괄호가 짝이 맞지 않는 경우 이 오류가 발생할 수 있습니다.

다음 샘플에서는 C2931을 생성합니다.

// C2931.cpp
// compile with: /c
template<class T>
struct TC { };
struct MyStruct {
   void TC<int>();   // C2931
};

struct TC2 { };
struct MyStruct2 {
   void TC2();
};

C2931은 제네릭을 사용하는 경우에도 발생할 수 있습니다.

// C2931b.cpp
// compile with: /clr /c
generic<class T> ref struct GC {};
struct MyStruct {
   void GC<int>();   // C2931
   void GC2();   // OK
};