Partager via


La recherche dépendante d'un argument (Koenig) est maintenant prise en charge

Mise à jour : novembre 2007

La recherche Koenig est maintenant totalement implémentée dans le compilateur Visual C++.

Pour plus d'informations, consultez Argument-Dependent Name (Koenig) Lookup on Functions.

Exemple

L'exemple suivant ne se comporte pas de la même façon au moment de l'exécution dans Visual Studio .NET et dans Visual Studio .NET 2003

// bc_argument_dependent_AKA_Koenig_lookup_now_supported.cpp
// compile with: /W1
#include <stdio.h>

namespace N {
   class X {};

   void f(X *pX) {
      printf_s("in N::X::f\n");
   };   // called if compiled with 7.1
}

void f(void *pv) {
   printf_s("in ::f\n");
};   // called if compiled with 7.0

int main() {
   N::X *pX = 0;
   f(pX);

   // The following lines will result in the same behavior
   // in Visual Studio .NET or Visual Studio .NET 2003
   f((void*)pX);   // Cast pX to void before calling f; calls global f
   ::f(pX);    // Explicitly specify global f
   N::f(pX);   // Explicitly specify f in namespace
}

in N::X::f
in ::f
in ::f
in N::X::f

Voir aussi

Référence

Modifications avec rupture dans le compilateur Visual C++