며칠 전 클래스 정의 친구 함수 (Which scope does an in-class-defined friend function belong to?)의 범위에 대한 질문을했고,이 함수가 둘러싸는 네임 스페이스의 범위에 있음을 알게되었지만 명시 적으로 선언 할 때까지 검색 할 수 없습니다. 수업 외 (ADL은 예외). 그리고 클래스가 로컬이 아닌 클래스 (경우에만 경우 함수는 클래스의 친구 선언에서 정의 할 수 있습니다클래스 정의 친구 기능의 범위는 무엇입니까?
:
오늘은 (섹션 11.3) C++ 표준에서 몇 가지 관련 문을 발견 9.8) 함수 이름은 정규화되지 않았고 함수의 이름 공간 범위가 있습니다. [예 :
class M { friend void f() { } // definition of global f, a friend of M, // not the definition of a member function }; —end example ]
이러한 기능은 내재적
inline
이다. 클래스에 정의 된 friend 함수는 정의 된 클래스의 (어휘) 범위에 있습니다. 클래스 외부에서 정의 된 friend 함수는 (3.4.1)이 아닙니다. 우리는이 범위 관련된 계산서가 여기에 있다는 것을 알 수
: 는 및 이 "이 정의 된 클래스의 (어휘) 범위에" "네임 스페이스 범위가 있습니다." 나는 여기서 혼란스러워. 전자가 이전 질문 (Which scope does an in-class-defined friend function belong to?)과 관련이 있다면, 후자는 무엇을 의미합니까?
AFAIK, 친구 기능 내에서 이름 검색에 관한 내용입니다. [라이브 예제] (http://coliru.stacked-crooked.com/a/046896a00ece8086) – dyp