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
}
};