§3.4.1 / 9 в стандарте C ++ 11 гласит:
Поиск имени для имени, используемого в определении функции друга
(11.3) определенный в классе дающий дружбу должен продолжаться
как описано для поиска в определениях функций-членов. Если друг
функция не определена в классе, предоставляющем дружбу, поиск имени
в определении функции-друга будет действовать, как описано для
поиск в определениях функций-членов пространства имен.
Моя интерпретация этого параграфа заключается в том, что функции друзей определяется в классе, предоставляя дружбу следуйте правилам предыдущего параграфа (3.4.1 / 8). Но как насчет следующего случая, то есть, когда функция друга не определил в классе предоставление дружбы? Что это, так называемый поиск в определении функции пространства имен? Это будет пункт 6? Я не уверен.
Да, это относится к 3.4.1§6. Цитируя главное предложение этого параграфа:
Имя, используемое в определении функции после функции описатель-идентификатор это член пространства имен
N
…
(акцент мой)
Других решений пока нет …