Udostępnij za pomocą


Błąd kompilatora C3771

"identifier" : nie można odnaleźć deklaracji znajomego w najbliższym zakresie przestrzeni nazw

Uwagi

Nie można odnaleźć deklaracji szablonu klasy dla określonego identyfikatora szablonu w bieżącej przestrzeni nazw.

Aby poprawić ten błąd

  • Upewnij się, że deklaracja szablonu klasy dla identyfikatora szablonu jest zdefiniowana w bieżącej przestrzeni nazw lub że identyfikator szablonu jest w pełni kwalifikowaną nazwą.

Przykład

Poniższy przykład kodu deklaruje szablon klasy i funkcję w przestrzeni nazw NA, ale próbuje zadeklarować szablon funkcji znajomej w przestrzeni nazw NB.

// 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.
    };
}

Zobacz też

Szablony