Compartir a través de


Advertencia del compilador C4867

'función' : falta la lista de argumentos de la llamada a la función, utilice 'llamada' para crear un puntero al miembro

Un puntero a la función miembro se inicializó incorrectamente.

Esta advertencia también se puede generar como resultado del trabajo de conformidad de compilador realizado para Visual C++ 2005: la conformidad puntero-a-miembro mejorada. El código que compiló antes de Visual C++ 2005 ahora generará C4867.

Esta advertencia siempre se emite como error. Utilice el pragma warning para deshabilitar esta advertencia. Para obtener más información sobre C4867 y MFC/ATL, vea _ATL_ENABLE_PTM_WARNING.

Ejemplo

El ejemplo siguiente genera el error 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
   }
};