Поиск имен функций с зависимостью от аргументов (поиск Koenig)
Компилятор может использовать поиск имени с зависимостью от аргументов для поиска определения неопределенного вызова функции. Поиск имени с зависимостью от аргументов также называется поиском Koenig. Тип каждого аргумента в вызове функции определяется в иерархии пространств имен, классов, структур, объединений или шаблонов. При указании вызова функции без категории postfix компилятор ищет определение функции в иерархии, связанной с каждым типом аргумента.
Пример
В образце компилятор замечает, что функция 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);
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по