Avertissement du compilateur C4867

'function' : function call missing argument list ; utiliser « call » pour créer un pointeur vers un membre

Un pointeur vers la fonction membre a été initialisé de manière incorrecte.

Cet avertissement peut être généré suite au travail de conformité du compilateur effectué pour Visual Studio 2005 : conformité améliorée du pointeur vers membre. Le code compilé avant Visual Studio 2005 génère désormais C4867.

Cet avertissement est toujours émis en tant qu’erreur. Pour désactiver cet avertissement, utilisez le pragma warning . Pour plus d’informations sur C4867 et MFC/ATL, consultez _ATL_ENABLE_PTM_WARNING.

Exemple

L’exemple suivant génère l’erreur 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
   }
};