引數相關的函式的名稱 (Koenig) 查閱
編譯器找不到的不合格的函式呼叫的定義,可以使用引數相關的名稱查詢。 引數相關名稱查閱也稱為 koenig。 函數呼叫中的每個引數的型別定義的命名空間、 類別、 結構、 等位或範本的階層架構中。 當您指定不合格後置函式呼叫,編譯器會搜尋每個引數型別相關聯的階層架構中的函式定義。
範例
下列範例適用於 Visual C++。NET 2003 和更新,和 C++ 標準中所指定的行為。 在範例中,編譯器會記錄該函式f()使用引數x。 引數x屬於型別A::X,定義在命名空間A。 編譯器會搜尋的命名空間A ,並找出函式定義f()所使用的型別引數A::X。
// argument_dependent_name_koenig_lookup_on_functions.cpp
namespace A
{
struct X
{
};
void f(const X&)
{
}
}
int main()
{
// The compiler finds A::f() in namespace A, which is where
// the type of argument x is defined. The type of x is A::X.
A::X x;
f(x);
}