関数の引数依存の名前 () Koenig の参照
コンパイラが不適切な関数呼び出しの定義を検索するには引数依存の参照の名前を使用できます。引数依存の名前の参照も Koenig の参照と呼ばれます。関数呼び出しの引数の型は名前空間クラス構造体共用体またはテンプレートの階層内で定義されます。後置 の不適切な関数呼び出しを指定すると各引数の型に関連付けられている階層の関数定義を検索します。
例
次の例はVisual C++ .NET 2003 以降ではC++ 標準で指定したとおりに動作します。この例では関数 f() が x 引数を受け取ることがわかります。引数 x は型 A::X 名前空間で定義されている A です。コンパイラは名前空間 A を検索しA::X 型の引数を受け取る関数 f() の定義を見つけます。
// 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);
}