Обычный неквалифицированный поиск и поиск по имени в зависимости от аргумента (ADL)

Для неквалифицированного поиска имени, «Обычного неполного поиска» и «Поиска имени, зависящего от аргумента» (ADL), я не могу найти в стандарте, какой из них происходит первым?

Опять же, поскольку оба пытаются добавить что-то в набор кандидатов на перегрузку, порядок, похоже, не имеет значения. Но все же было бы неплохо узнать, какой из них произойдет первым.

Спасибо


person Gob00st    schedule 18.10.2012    source источник


Ответы (1)


Неважно, что на первом месте, не так ли? Поиск имени генерирует набор возможных имен.

3.4 Поиск по имени
Поиск по имени может связать с именем более одного объявления, если обнаружит, что это имя является именем функции; говорят, что объявления образуют набор перегруженных функций.

В стандарте конкретно сказано «установить». Как математическая конструкция множество {1,2,3} совпадает с {2,3,1} и {3,2,1}. Порядок не имеет значения. Что имеет значение, так это когда возникает разрешение перегрузки и правила доступа приложений. Здесь стандарт очень ясен. Еще раз цитируя вступительный абзац к 3.4:

Разрешение перегрузки происходит после успешного поиска имени. Правила доступа учитываются только после успешного поиска имени и разрешения перегрузки функции.

person David Hammen    schedule 18.10.2012
comment
Да, ваш ответ - это то, о чем я думал, также упоминается в вопросе: «Однако порядок, похоже, не имеет значения». Но все же было бы неплохо узнать, какое из них произойдет первым. Или это не предусмотрено стандартом? - person Gob00st; 18.10.2012
comment
Насколько я могу судить, это не указано в стандарте. Даже не похоже, что это должны быть две разные операции. Указано, что реализация жалобы найдет всех кандидатов (без ярлыков). - person David Hammen; 18.10.2012