다음을 통해 공유


컴파일러 경고 C4867

'function': 함수 호출에 인수 목록이 없습니다. 'call'을(를) 사용하여 멤버에 대한 포인터를 만드십시오.

멤버 함수를 가리키는 포인터가 잘못 초기화되었습니다.

이 경고는 Visual C++ 2005에 대해 적용되었으며, 향상된 멤버 포인터 준수라는 컴파일러 규칙의 결과로 발생할 수 있습니다. Visual C++ 2005 이전에는 정상적으로 컴파일되던 코드도 이제 C4867을 발생시킬 수 있습니다.

이 경고는 항상 오류로서 발생합니다. 이 경고를 비활성화하려면 warning pragma를 사용하십시오. C4867 및 MFC/ATL에 대한 자세한 내용은 _ATL_ENABLE_PTM_WARNING을 참조하십시오.

예제

다음 샘플에서는 C4867 오류가 발생하는 경우를 보여 줍니다.

// C4867.cpp
// compile with: /c
class A {
public:
   void f(int) {}

   typedef void (A::*TAmtd)(int);

   struct B {
      TAmtd p;
   };

   void g() {
      B b = {f};   // C4867
      B b2 = {&A::f};   // OK
   }
};