Compartilhar via


C4867 de aviso do compilador

'função': chamada de função ausente da lista de argumentos; Use 'ligação' para criar um ponteiro para o membro

Um ponteiro para a função de membro foi inicializado incorretamente.

Este aviso pode ser gerado como resultado do trabalho de conformidade de compilador que foi feito para o Visual C++ 2005: conformidade aprimorada do ponteiro para o membro. Código compilado antes para o Visual C++ 2005 agora irá gerar C4867.

Esse aviso é sempre emitido como um erro. Use o warning pragma para desabilitar este aviso. Para obter mais informações sobre o C4867 e MFC/ATL, consulte _ATL_ENABLE_PTM_WARNING.

Exemplo

O exemplo a seguir gera 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
   }
};