Я не понимаю 3.4/2 в стандарте:
Имя, «просматриваемое в контексте выражения», просматривается как неполное имя в области, в которой находится выражение.
Что, если имя квалифицировано как N::i
ниже?
#include <iostream>
namespace N { int i = 1; }
int main()
{
int i = 0;
std::cout << N::i << '\n';
}
Полное имя N::i
не ищется в области видимости, где находится N::i
, т. е. не ищется в области видимости main() и глобальной области видимости!