現已支援引數相依 (Koenig) 查閱
更新:2007 年 11 月
Koenig 查閱目前在 Visual C++ 編譯器中已經過完整實作。
如需詳細資訊,請參閱Argument-Dependent Name (Koenig) Lookup on Functions。
範例
下列範例在 Visual Studio .NET 與在 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