Partilhar via


Aviso do Compilador C4867

'function': lista de argumentos ausentes da chamada de função; use 'call' para criar um ponteiro para membro

Uma função ponteiro para membro foi inicializada incorretamente.

Esse aviso pode ser gerado como resultado do trabalho de conformidade do compilador que foi feito para o Visual Studio 2005: conformidade avançada de ponteiro para membro. O código compilado antes do Visual Studio 2005 agora gerará C4867.

Esse aviso sempre é emitido como um erro. Use o pragma de aviso para desabilitar este aviso. Para obter mais informações sobre 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
   }
};