Я хотел бы видеть пример игнорирования имени функции в спецификаторе вложенного имени

Примечание к ноге (33) на странице 53 документа N4140:

Поиск, в котором имена функций игнорируются, включает имена, появляющиеся в спецификаторе вложенного имени, подробном спецификаторе типа или базовом спецификаторе.

1 ответ

Решение
namespace A
{
    void std();
    void foo()
    {
        std::cout << "Hello World"; // (1)
    }
};

В 1), std не может назвать функцию, поэтому функция A::std игнорируется при поиске, и код компилируется.
Это правило явно упоминается в [basic.lookup.qual]/1:

Если :: Оператору разрешения области в спецификаторе вложенного имени не предшествует спецификатор decltype, поиск имени которого предшествует :: рассматривает только пространства имен, типы и шаблоны, специализация которых - типы.

Другой пример из списка включает

class A : B {};

Вот, B не может назначить функцию, поэтому любые функции B игнорируются во время поиска. То же самое касается

class A a;

куда A не может назвать функцию.

Другие вопросы по тегам