다음을 통해 공유


컴파일러 오류 C3771

"identifier": 가장 가까운 네임스페이스 범위에서 friend 선언을 찾을 수 없습니다.

현재 네임스페이스 내에서 지정된 템플릿 identifier 에 대한 클래스 템플릿 선언을 찾을 수 없습니다.

이 오류를 해결하려면

  • 템플릿 식별자에 대한 클래스 템플릿 선언이 현재 네임스페이스에 정의되어 있는지 또는 템플릿 식별자가 정규화된 이름인지 확인합니다.

예시

다음 코드 예제에서는 NA네임스페이스의 클래스 템플릿 및 함수를 선언하지만 NB네임스페이스의 friend 함수 템플릿을 선언하려고 합니다.

// C3771.cpp
// compile with: /c

namespace NA {
template<class T> class A {
    void aFunction(T t) {};
    };
}
// using namespace NA;
namespace NB {
    class X {
        template<class T> friend void A<T>::aFunction(T); // C3771
// try the following line instead
//      template<class T> friend void NA::A<T>::aFunction(T);
// or try "using namespace NA;" instead.
    };
}

참고 항목

템플릿